Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

POST /api/collections returns 500 instead of 400 for ADM validation failures

Abierto Apto para principiantes
#505 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
86/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
javascript
Área
api, backend

Línea de trabajo

Comienza en collections-controller.js:create() e inspecciona cómo se manejan los errores de validación de BaseService.create(), usando la reproducción con POST /api/collections como punto de entrada. Conserva los detalles estructurados de validación del 400 y verifica que x_mitre_domains no soportados y x_mitre_contents vacíos devuelvan 400 sin persistencia.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Description

Invalid collection payloads return a generic HTTP 500 instead of a validation response identifying the rejected fields.

Observed on REST API 4.24.0, commit 69b37fe769e6abe7675d413451a8361aecc36bea.

Reproduction
  1. Prepare a valid x-mitre-collection payload containing at least one existing object revision in x_mitre_contents.
  2. Add "x_mitre_domains": ["enterprise-attack"] to its stix object.
  3. POST the payload to /api/collections.

Actual: HTTP 500:

Unable to create collection. Server error.

Expected: HTTP 400 with structured ADM validation details indicating that x_mitre_domains is an unrecognized collection field.

Removing x_mitre_domains allows the nonempty collection to return 201 and persist successfully. Explicitly empty x_mitre_contents also produces the same misleading 500.

Cause and suggested fix

BaseService.create() throws ValidationError, but collections-controller.js:create() maps every exception except DuplicateIdError to a generic 500. The log contains:

Failed with error: ValidationError: ADM validation failed

Preserve the normal validation-error handling and field-level details. Add regressions asserting 400 and no persistence for unsupported fields and empty contents.

These requests did not crash the REST process; REST and MongoDB remained healthy during verification.

Lenguaje dominante
JavaScript
Estrellas
56
Forks
18
Merge medio
21 h 14 min
PR fusionados (30 d)
10

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de mitre-attack/attack-workbench-rest-api

Todos los issues de mitre-attack/attack-workbench-rest-api

Issues similares

Más issues de JavaScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.