Skip to content

fix(xsd): preserve xmllint diagnostics and distinguish infra failures - #14

Merged
tiagoapolo merged 1 commit into
mainfrom
agent/xsd-error-diagnostics
Jul 31, 2026
Merged

fix(xsd): preserve xmllint diagnostics and distinguish infra failures#14
tiagoapolo merged 1 commit into
mainfrom
agent/xsd-error-diagnostics

Conversation

@tiagoapolo

Copy link
Copy Markdown
Contributor

execFileSync errors were reduced to String(error.stderr), which produced a literal "undefined" message whenever stderr was empty (e.g. the ENOENT raised when xmllint isn't installed). That masked infrastructure failures as DpsXsdValidationError, causing callers to treat missing tooling as a permanent fiscal rejection.

Add XmllintUnavailableError for cases where xmllint could not run to completion (missing binary, or a crash without stderr), keeping DpsXsdValidationError reserved for XSD violations that xmllint actually reported. Preserve message/code/path/spawnargs/stdout/stderr from the underlying error for diagnosis.

execFileSync errors were reduced to String(error.stderr), which produced
a literal "undefined" message whenever stderr was empty (e.g. the ENOENT
raised when xmllint isn't installed). That masked infrastructure failures
as DpsXsdValidationError, causing callers to treat missing tooling as a
permanent fiscal rejection.

Add XmllintUnavailableError for cases where xmllint could not run to
completion (missing binary, or a crash without stderr), keeping
DpsXsdValidationError reserved for XSD violations that xmllint actually
reported. Preserve message/code/path/spawnargs/stdout/stderr from the
underlying error for diagnosis.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@tiagoapolo
tiagoapolo merged commit 9d656f8 into main Jul 31, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant