Exit code 5 is documented for schema validation failures but never returned (schema errors exit with 2)
Los mantenedores suelen responder en 2 días
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 35/100
Línea de trabajo
Comienza en dsc/src/util.rs alrededor de la L73 donde se define EXIT_VALIDATION_FAILED (5) y rastrea qué rutas realmente llaman a exit() para errores de validación de esquema, comparándolas con la ruta exit(2) que alcanza el repro. Reproduce con dsc config test --file repro.dsc.config.yaml del issue e inspecciona dónde se genera el mensaje ERROR Schema (probablemente en el manejo de los comandos config/resource en dsc/src). Hecho significa que los fallos de esquema devuelvan 5 con un test que lo afirme, o que la constante no utilizada se elimine y la tabla de códigos de salida coincida con util.rs — confirma con el maintainer qué lado cambiar primero.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Prerequisites
- Write a descriptive title.
- Make sure you are able to repro it on the latest version
- Search the existing issues.
Summary
The CLI reference says exit code 5 means "a resource definition or instance value was invalid against its JSON schema". When a resource instance fails schema validation, dsc exits with 2.
EXIT_VALIDATION_FAILED is still defined in dsc/src/util.rs L73 but nothing uses it, on v3.3.0 or main. Its last use was exit(EXIT_VALIDATION_FAILED) in config validate, removed in 8fff4fbb ("fix merge conflict", 2024-07-25). It looks like that was a side effect of the merge rather than a decision, but I couldn't confirm it.
The same table lists only codes 0 to 6, while util.rs also defines 7 (resource not found), 8 (assertion failed), 9 (server failed) and 10 (Bicep failed).
I don't know which side you'd rather change: return 5 for schema validation errors, or drop 5 from the docs (and add 7 to 10). Either works for me. I script against the exit codes and only need the docs and the binary to agree.
This is not the same as #817 or #1245, which are about exit codes coming back from resources.
Steps to reproduce
-
Save this as
repro.dsc.config.yaml. The property name has a typo (valuName).config testdoesn't write anything, so the key is never created:$schema: https://aka.ms/dsc/schemas/v3/bundled/config/document.json resources: - name: typo in property name type: Microsoft.Windows/Registry properties: keyPath: HKCU\Software\DscExitCodeRepro valuName: Example -
Run:
dsc config test --file ./repro.dsc.config.yaml $LASTEXITCODE
Expected behavior
ERROR Schema: Additional properties are not allowed ('valuName' was unexpected)
5
Actual behavior
ERROR Schema: Additional properties are not allowed ('valuName' was unexpected)
2
Other inputs on dsc 3.3.0:
| Input | Exit |
|---|---|
| unknown resource property (above) | 2 |
wrong property type, valueData: { DWord: "x" } |
2 |
same two cases with dsc resource test -r Microsoft.Windows/Registry |
2 |
| unknown top-level key in the document | 2 |
| invalid YAML | 4 |
parameter default above its maxValue |
4 |
Error details
2026-10-04T10:25:51.959520Z ERROR Schema: Additional properties are not allowed ('valuName' was unexpected)
Environment data
Name Value
---- -----
PSVersion 5.1.26100.9444
PSEdition Desktop
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
BuildVersion 10.0.26100.9444
CLRVersion 4.0.30319.42000
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
Windows 11 Pro for Workstations 25H2, build 26200.
Version
3.3.0 (also reproduced on 3.4.0-preview.1)
Visuals
No response
- Lenguaje dominante
- Rust
- Estrellas
- 532
- Forks
- 76
- Merge medio
- 2 d 10 h
- PR fusionados (30 d)
- 15
Preparar el entorno
Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de PowerShell/DSC
-
Issue-Enhancement Needs Triage
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
PowerShell/DSC#1737 ·
Los mantenedores suelen responder en 2 días
-
`directives.version` is checked against dsc-lib's crate version (3.2.0), not the running dsc versionAbiertoIssue-Bug
Dificultad 3/5 Medio día Aptitud para principiantes 74/100
PowerShell/DSC#1735 · 1 comentario · 1 reacción · 1 asignado ·
Los mantenedores suelen responder en 2 días
-
Issue-Enhancement
Dificultad 5/5 Más de una semana Aptitud para principiantes 38/100
PowerShell/DSC#1729 · 1 comentario ·
Los mantenedores suelen responder en 2 días
-
Feature Request: Support dsc functions in executable argsPosiblemente ocupada @SteveL-MSFT la tomó hace 12 días. AbiertoIssue-Enhancement
Dificultad 4/5 3-5 días Aptitud para principiantes 62/100
PowerShell/DSC#1722 · 4 comentarios · 1 asignado ·
Los mantenedores suelen responder en 2 días
-
Dev-UX Needs Triage
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
PowerShell/DSC#1694 ·
Los mantenedores suelen responder en 2 días
Todos los issues de PowerShell/DSC
Issues similares
-
Signals (Failure Detector): a tool call and its own execution are reported as a repeated callAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
Los mantenedores suelen responder en 1 día
-
check: a failed re-read of the model file before binding is labelled E_THETA_LEVEL_BINDING on [parameters]Posiblemente ocupada @TeunP la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 80/100
Devolutions/picky-rs#546 · 1 comentario ·
Los mantenedores suelen responder en 3 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
Los mantenedores suelen responder en 1 día