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

Exit code 5 is documented for schema validation failures but never returned (schema errors exit with 2)

Abierto
#1,736 0 comentarios 0 reacciones 0 asignados Ver en GitHub

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
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Activo
Stack tecnológico
rust
Área
cli

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
  1. Save this as repro.dsc.config.yaml. The property name has a typo (valuName). config test doesn'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
    
  2. 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

Abrir en Codespaces

Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.

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 PowerShell/DSC

Todos los issues de PowerShell/DSC

Issues similares

Más issues de Rust

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.