Skip to content

CxODEV-1730: StructuredErrorException + structured_error task-output contract - #216

Merged
andrejsimic merged 2 commits into
v3from
CxODEV-1730-rom-error-persistence
Jul 21, 2026
Merged

CxODEV-1730: StructuredErrorException + structured_error task-output contract#216
andrejsimic merged 2 commits into
v3from
CxODEV-1730-rom-error-persistence

Conversation

@andrejsimic

Copy link
Copy Markdown
Collaborator

What

Adds a framework capability for workers to attach a sanitized, structured error classification to a failed task's output, on the v3 line (3.7.3 → 3.8.0).

  • StructuredErrorException(code, reason, referenceError?)
  • StructuredError DTO + ErrorOutput.StructuredError (omitted when null → backward-compatible)
  • StructuredErrorSerializer: OutputKey, ToOutputData (for signal senders) and tolerant TryParse (consumer side)
  • Both ExecutionManager and TypePollSpreadingExecutionManager populate structured_error when a StructuredErrorException is caught; plain exceptions still emit only error_message (back-compat)

Why

Part of CxODEV-1730 (persist ROM order failure details and propagate a sanitized classification to SOM). This is the transport layer the ROM/SOM engines build on.

Tests

  • 8 unit tests: snake_case output shape, plain-exception back-compat, round-trip contract (both producers ↔ parser), parser leniency. Full suite 55/55 green.
  • Verified end-to-end against a live Conductor: a worker throwing StructuredErrorException yields structured_error (code/reason/reference_error/version) anderror_message in the failed task output.

Base is v3 (the 3.7.x maintenance line); master (4.x) is intentionally not targeted.

🤖 Generated with Claude Code

andrejsimicand others added 2 commits July 20, 2026 15:46
…put contract
Adds a framework capability for workers to attach a sanitized, structured error
classification to a failed task's output:
- StructuredErrorException(code, reason, referenceError?)
- StructuredError DTO and ErrorOutput.StructuredError (omitted when null → back-compat)
- StructuredErrorSerializer: OutputKey, ToOutputData (for signal senders) and
tolerant TryParse (consumer side); a round-trip contract test pins the shape/key
- both ExecutionManager and TypePollSpreadingExecutionManager populate structured_error
when a StructuredErrorException is caught; plain exceptions still emit only error_message
- version bumped 3.7.3 -> 3.8.0 (additive, on the v3 line)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@andrejsimic
andrejsimic merged commit e61f2b8 into v3Jul 21, 2026
@andrejsimic
andrejsimic deleted the CxODEV-1730-rom-error-persistence branch July 21, 2026 06:51
Sign up for freeto 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

@andrejsimic