Skip to content

πŸ›πŸ§‘β€πŸ’» - Undersized SDD response loses its drafting stage context behind generic retryable workflow.failedΒ #850

Closed

Description

@efraespada

Is there an existing issue for this?

  • I have searched the existing issues.

Searches covered markdown/too short and SDD/schema/response failures. Related #833 concerns inconsistent requirement mappings; #763 concerns oversize companion recovery; #836 concerns the selected source view. This is a distinct undersized response-schema failure and its generic recovery diagnostic. Please consolidate if another issue owns this exact case without losing the observed evidence.

Which actions are affected?

Issue

Which platforms are affected?

Linux

Description

During ordinary pre-branch SDD preparation, the released SDK reports Agent response schema violation at $.markdown: string is too short, then exposes only workflow.failed/retryable Yes in the safe issue card and final error. The card contains no drafting phase, minimum/observed length or attempt facts and gives only inspect-and-retry guidance. Strict rejection is correct; this report requests actionable redacted stage/length identity, not acceptance of short output or a broader automatic retry policy.

Consumer: vypdev/domus#17 . Exact terminal failed run: https://github.com/vypdev/domus/actions/runs/41339905694 . Reference 10b98533-30f3-4b29-9b2e-38e3b05ac240. Safe card: vypdev/domus#17 (comment) . No SDD or branch was published.

Expected: retain the existing strict schema and fail-closed publication, while exposing a closed undersized-response cause, stage, applicable minimum and safe available attempt/count facts. Distinguish a model response-contract failure from provider unavailability or a generic retryable workflow operation. If human clarification is the supported recovery, state that concrete action. Preserve the SDK's deliberate maximum-only bounded-repair policy unless its owners explicitly change it; do not catch arbitrary provider/schema failures into an unbounded regeneration loop. Never publish the rejected response or sensitive source.

Actual: the log identifies the $.markdown minimum-length violation, but the public card says Specific table facts are unavailable for this failure and only workflow.failed. Final message says retry the failed step and Retryable Yes, without a drafting-stage/response-length classification. The actual response string/length is not retained, so neither its content nor why the provider returned it can be responsibly inferred.

Reproducing the issue

  1. Inspect the exact observed released-SDK run above. It followed a substantive normal issue-body clarification, not a rerun of unchanged input. The selected development base is 63d1159f83f51ae0cd3c41f32341d9e9e36bb6da.
  2. The issue contains a complete consumer-authored proposed companion and explicit ownership/source facts, supplied as user review input. Independently before submission, seven byte-identical original policy modules were verified and original renderSddDerivedTables, validateSddMarkdown and validateSddDraftConsistency passed against all 15 immutable owning documents. Raw length 36855, rendered 39580, 8 requirement IDs, 52 cases; rendered SHA256 5df71eae4e5d266d98eb88ed1fa1d98075c8398f26c395b87da1dcc9ea61312e. These facts prove only that proposed input is consistent; they do not establish that the model copied/read it or that its generated response matched it.
  3. The Action executes analysis, then one logged draft query, and fails its response schema before table assembly. No actual generated-response length is available. This is an observed external/model outcome, not a deterministic provider-failure reproduction.
  4. Suggested isolated SDK regression: provide a draft-query result whose markdown string violates the local minimum; assert strict rejection with safe response-stage/minimum facts and retained prior answers/owners, no branch/spec publication, no false provider-outage claim and no hidden unbounded retry.
  5. Controls should cover minimum boundary success, genuinely oversized output using the existing maximum-only bounded repair, null/missing/nonstring markdown, unrelated schema failure, actual provider unavailable, and equivalent failures through ordinary Issue and Issue Comment entrypoints. These regressions have not been executed in the consumer.

copilot Version

vypdev/copilot@v3, immutable 3e7ceea; Codex CLI 0.166.0. Read-only inspected source at the same revision: draft workflow applies the declared minimum to markdown; lines 43-45 deliberately recover only the exact maximum-length schema error and rethrow other identities. Domain constants declare the draft minimum 1800. This source control explains the policy boundary, not the hidden generated response or a proven root cause in the provider.

Relevant Log Output

2026-11-01T19:06:15.8813789Z Agent execution admitted (codex codex-cli 0.166.0).
2026-11-01T19:06:21.6693443Z Agent execution completed.
2026-11-01T19:06:22.7795970Z Agent execution admitted (codex codex-cli 0.166.0).
2026-11-01T19:06:26.6630177Z Agent execution completed.
2026-11-01T19:06:26.6635958Z Pre-branch SDD gate failed: Agent response schema violation at $.markdown: string is too short.
2026-11-01T19:06:32.9592787Z Impact: The workflow could not complete the requested operation.
Error code: workflow.failed
Action: Inspect the current state and retry the failed step.
Retained state: Existing persisted state and completed external effects were preserved.
Retryable: Yes
Reference: 10b98533-30f3-4b29-9b2e-38e3b05ac240

Additional context and comments

No Copilot code, installed resources, settings, credentials, validator, limits, gate or branch lifecycle was changed by this investigation. The consumer is continuing with an explicit read-only-output clarification: request the complete proposed Markdown response rather than an acknowledgement/summary, preserving the normal Action publication gate. That new input is not a claimed fix or a blind retry, and its success remains unproven. Please keep this stage-specific evidence separate from the previous size, mapping and default-checkout failures.

Activity

  1. added
    bugSomething isn't working
    bugfixSomething isn't working
    priority: highCritical issue, needs immediate attention.
    on Nov 1, 2026
  2. added theissue type on Nov 1, 2026
  3. moved this to Todo in vypdevon Nov 1, 2026
  4. changed the title [-]Undersized SDD response loses its drafting-stage context behind generic retryable workflow.failed[/-] [+]πŸ› - Undersized SDD response loses its drafting stage context behind generic retryable workflow.failed[/+] on Nov 1, 2026
  5. vypbot commented on Nov 1, 2026

    @vypbot
    Contributor

    Hi! I’m @vypbot, the Copilot assistant for this repository.

    I can answer questions, explain the codebase, propose implementation and test plans, review issues and pull requests for potential bugs or security problems, and help authorized maintainers apply changes.

    Try /copilot help to see the available commands, or mention @vypbot with your question.

  6. moved this from Todo to In Progress in vypdevon Nov 4, 2026
  7. added
    branchedIndicates that a branch has been created for this issue.
    on Nov 4, 2026
  8. changed the title [-]πŸ› - Undersized SDD response loses its drafting stage context behind generic retryable workflow.failed[/-] [+]πŸ›πŸ§‘β€πŸ’» - Undersized SDD response loses its drafting stage context behind generic retryable workflow.failed[/+] on Nov 4, 2026
  9. added
    state:workingWork can proceed on the verified branch or without a branch.
    on Nov 4, 2026
  10. vypbot commented on Nov 4, 2026

    @vypbot
    Contributor

    Implementation plan

    Current status: Ready to start. No action is required from maintainers before implementation.

    1. Define the safe failure contract
      • Add a closed cause for undersized draft markdown with the drafting stage and applicable minimum; include only safely available attempt or count facts.
      • Keep this cause distinct from provider unavailability and generic retryable workflow failures.
    2. Classify the draft validation failure
      • Preserve strict schema rejection and fail-closed publication; do not retain or expose rejected content or infer its length when unavailable.
      • Keep automatic repair limited to the existing maximum-length policy.
    3. Make recovery guidance actionable
      • Update the safe issue card and final error to identify the undersized draft response and its minimum when known.
      • Direct the user to provide or clarify the complete proposed Markdown response before rerunning the workflow.
    4. Add regression coverage
      • Cover the undersized response, minimum boundary, maximum-only repair, malformed markdown, unrelated schema errors, and provider unavailability through Issue and Issue Comment entrypoints.
      • Assert safe diagnostics, retained answers and owners, and no branch or specification publication after rejection.
    5. Update user documentation
      • Document the undersized-draft diagnosis and supported recovery in the pre-branch SDD guidance and relevant error reference.

    Acceptance: For both Issue and Issue Comment entrypoints, a draft result below the configured markdown minimum is rejected without publishing a branch or specification, and the safe card and final error identify the drafting-stage undersized-response cause, applicable minimum when available, and concrete recovery action without exposing rejected content or misclassifying provider availability.

    Need something else? Mention the bot with a question or use /copilot help.

  11. added
    size: XXLIndicates an extremely large task or issue that requires significant time and effort to complete.
    on Nov 4, 2026
  12. vypbot commented on Nov 4, 2026

    @vypbot
    Contributor

    Issue closed β€” historical progress

    Current status: closed as completed.

    The last estimate is retained below as history. Closure does not certify a new percentage, tests, or branch alignment.

    Action required: none for this closed issue. If work continues, reopen the issue; a fresh assessment can update this same card.

    Last assessment before closure (historical)

    Progress: 75% β€” in progress

    > Current status: [R1] During ordinary pre-branch SDD preparation, the released SDK reports Agent response schema violation at $.markdown: string is too short, then exposes only workflow.failed/retryable Yes in the safe issue card and final error. The card contains no drafting phase, minimum/observed length or attempt facts and gives only inspect-and-retry guidance. Strict rejection is correct; this report requests actionable redacted stage/length identity, not acceptance of short output or a broader automatic retry policy. β€” The source adds a distinct undersized draft response diagnosis and actionable same-issue clarification guidance, with stage, minimum, attempt and available count facts. Rejected content is not included.
    [R2] Expected: retain the existing strict schema and fail-closed publication, while exposing a closed undersized-response cause, stage, applicable minimum and safe available attempt/count facts. Distinguish a model response-contract failure from provider unavailability or a generic retryable workflow operation. If human clarification is the supported recovery, state that concrete action. Preserve the SDK's deliberate maximum-only bounded-repair policy unless its owners explicitly change it; do not catch arbitrary provider/schema failures into an unbounded regeneration loop. Never publish the rejected response or sensitive source. β€” The change preserves strict rejection and fail-closed publication, distinguishes this response-contract failure f
    [untrusted content truncated]

    Next: [R4] 5. Controls should cover minimum boundary success, genuinely oversized output using the existing maximum-only bounded repair, null/missing/nonstring markdown, unrelated schema failure, actual provider unavailable, and equivalent failures through ordinary Issue and Issue Comment entrypoints. These regressions have not been executed in the consumer. β€” Provide independent execution evidence for the required regression controls, including both entrypoints; generated build metadata and source tests do not prove they passed.

  13. vypbot commented on Nov 4, 2026

    @vypbot
    Contributor

    Issue closed: synchronization recommendation retired

    No branch synchronization is required for this closed issue.

    The previous recommendation is historical. Issue closure does not certify that the branches are synchronized.

  14. moved this from In Progress to Done in vypdevon Nov 4, 2026
  15. added
    100%Progress: 100%
    and removed
    in-progressStart work on an admitted issue.
    state:workingWork can proceed on the verified branch or without a branch.
    on Nov 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

100%Progress: 100%branchedIndicates that a branch has been created for this issue.bugSomething isn't workingbugfixSomething isn't workingpriority: highCritical issue, needs immediate attention.size: XXLIndicates an extremely large task or issue that requires significant time and effort to complete.

Type

Projects

  • Status
    Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions