Skip to content

πŸ›πŸ§‘β€πŸ’» - bug Bugbot persists a review then fails reconciliation with opaque provider.unavailableΒ #646

Closed

Description

@efraespada

Is there an existing issue for this?

  • I have searched the existing issues.

Which actions are affected?

Pull Request

Which platforms are affected?

Linux

Description

Dogfooding vypdev/copilot@v3 on platform PR #198 persisted a native Bugbot review and inline finding, then failed the workflow and Copilot / Review with only the generic retryable provider.unavailable message. The aggregate says one or more finding mutations could not complete. The logs do not identify the failed mutation, affected finding, provider operation, HTTP status, or safe recovery boundary.

This report is about the incomplete reconciliation and unusably vague diagnostic. It does not assume a particular GitHub/API root cause or ask Copilot to ignore incomplete evidence. Previous similar diagnostic reports #547 and #611 are closed and concern different progress/comparison paths; no matching finding-publication report was found.

Observed effects on the same exact head fb0a42edad02f9fd89088e5754cd5cf2bfddb44d:

  • Five bounded analysis partitions completed successfully; analysis took 65,093ms. The failure occurred after native review publication, during the publication/projection/reconciliation portion of the run.
  • Native review ID 5597906436 and inline finding comment 4335387140 exist.
  • Finding ID: backend/Dockerfile:20:healthcheck-requires-curl; fingerprint fp-dacef490, semantic fingerprint sf-5f2f6b3d.
  • Telemetry reports candidateFindings=1, publishedFindings=0, findingStates.open=1, outcome=failed although the native review/comment exists. This may reflect an incomplete later transition; the diagnostic does not reveal which one.
  • The aggregate status says Bugbot could not complete one or more finding mutations.
  • A separate coverage limitation is reported: human-conversation retained 3 items, truncated 1, limitReached=true; all 57 diff files and all 5 analysis partitions are complete. The two limitations should remain distinguishable, with the exact truncated source identified for safe recovery.

The finding itself is a verified false positive: the actual built image contains /usr/bin/curl (curl 8.18.0), the configured readiness probe succeeds, and backend plus dependent console are healthy. Adoptium's official Ubuntu 26.04 JRE Dockerfile explicitly installs curl. We are handling the finding through the documented evidence/dismissal flow rather than adding a redundant package installation or weakening checks. That false positive does not explain the reconciliation failure.

Expected: retain truthful incomplete/failed evidence, but expose a sanitized actionable failure record (stage, finding ID, operation and provider status/reference) and a bounded recovery route. A retry after provider recovery must reconcile the existing native publication without duplicate reviews/threads, lost dismissal state, or false complete coverage.

Reproducing the issue

  1. Inspect workflow run 39579227152, job 119152380485, attempt 1. It reviews the exact head above in a same-repository human-authored PR.
  2. Observe all five analysis partitions finishing and the native review/inline comment appearing.
  3. Observe the aggregate publication reporting failed finding mutations, followed by generic provider.unavailable and a failed Copilot / Review.
  4. Compare the native review/comment IDs with telemetry's zero published findings. No detailed failed provider operation is logged.

Suggested regression: fault-inject a provider failure after native review creation but before marker/thread reconciliation; verify explicit sanitized diagnostics, retained effects, conservative status and idempotent retry. Also verify the diagnostic can distinguish a bounded conversation truncation from a failed finding mutation. This fault-injection test is a proposed upstream reproduction; it has not been run in the consumer repository.

copilot Version

3.9.3. Action vypdev/copilot@v3 resolved to f7f68e699a7f7cea46e0da62388ec1a643908ae9. Planner/reviewer: Codex, OpenAI gpt-6-luna. Runner: self-hosted Linux ubuntu-runner-4; no language-specific operation was needed for this review.

Relevant Log Output

Bugbot reviewer completed partition 5/5.
Bugbot reviewer completed in 65093ms.
Bugbot workflow completed in 74522ms.
[bugbot.telemetry] candidateFindings=1 publishedFindings=0 findingStates.open=1 outcome=failed
Publishing result: 3 result(s), 4 step(s), 1 error(s).
Published Copilot / Review Check Run for fb0a42edad02f9fd89088e5754cd5cf2bfddb44d.
Impact: The provider was temporarily unavailable.
Error code: provider.unavailable
Action: Retry when the provider is available.
Retained state: Existing persisted state and completed external effects were preserved.
Retryable: Yes
Reference: a67cf9de-2a9c-4ba4-aa06-0f19e514e59c

Additional context and comments

Consumer: Kotlin/Ktor + Astro/Svelte monorepo; 57 changed files, 3,365 changed lines. Docker/Supabase foundation work is under review; no deployment, secrets, database contents or credentials are included in this report. Ordinary backend/frontend CI is independent and continues. The report is intentionally limited to observed evidence; the underlying provider/API failure is not established by the available diagnostics.

Activity

  1. added
    bugSomething isn't working
    bugfixSomething isn't working
    priority: highCritical issue, needs immediate attention.
    on Oct 21, 2026
  2. added theissue type on Oct 21, 2026
  3. moved this to Todo in vypdevon Oct 21, 2026
  4. changed the title [-]bug: Bugbot persists a review then fails reconciliation with opaque provider.unavailable[/-] [+]πŸ› - bug Bugbot persists a review then fails reconciliation with opaque provider.unavailable[/+] on Oct 21, 2026
  5. vypbot commented on Oct 21, 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. efraespada commented on Oct 21, 2026

    @efraespada
    MemberAuthor

    Additional recovery evidence from the consumer:

    • The documented /copilot dismiss "backend/Dockerfile:20:healthcheck-requires-curl" command succeeded in run 39581205762, with the receipt 1 finding was dismissed. No repository source was changed.
    • The bounded conversation source is now identified: our SDD-answer comment contained 4,075 characters. The pinned bugbot_review_context.ts has MAX_CONVERSATION_ITEM_LENGTH = 4_000. Removing only its redundant 136-character introduction brings it to 3,939; all seven answer bodies were retained verbatim. The issue body, SDD publication and substantive decisions were not changed.
    • The exact-head PR analysis run has been retried after this bounded-context recovery and durable dismissal. Outcome will be reported separately; the retry is not evidence of success yet.

    The initial failed-mutation diagnostic still does not identify which provider operation failed. Conversation truncation is a separately understood limitation, not proof of a provider outage. Please keep those recovery paths distinct.

  7. efraespada commented on Oct 21, 2026

    @efraespada
    MemberAuthor

    Consumer recovery completed: run 39579227152, attempt 2 passed on the unchanged head fb0a42edad02f9fd89088e5754cd5cf2bfddb44d. The aggregate now reports outcome=complete, coverage=complete, zero active/unknown/verification findings and one durable dismissal. The original native finding thread remains the same and is resolved.

    No application code, image dependency, ignore pattern or check threshold was changed. Recovery consisted of the documented evidence/dismissal command, removing only the redundant header from the over-limit clarification while preserving all answer bodies verbatim, and retrying the failed PR-analysis workflow. Backend/frontend CI, production dependency audit and RepoWise independently passed.

    Platform PR #198 was subsequently merged into develop at 0741ee22dfaca8034975a81a4d1fc767863d89d2 under the maintainer's authorization. This confirms the consumer recovery, not an upstream fix for the original failed-mutation diagnostic; that provider operation remains unidentified in attempt 1.

  8. moved this from Todo to In Progress in vypdevon Oct 21, 2026
  9. 18 remaining items

  10. vypbot commented on Oct 21, 2026

    @vypbot
    Contributor

    Branch synchronized

    develop was merged into bugfix/646-bug-bugbot-persists-a-review-then-fails-reconciliation-with-opaque-provider-unavailable and pushed as 38b5eb4bfc7d7137e8df740665870c3f8ff561f3.

    6 verification checks passed.

  11. moved this from In Progress to Done in vypdevon Oct 21, 2026
  12. 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 Oct 21, 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