Repository navigation
ππ§βπ» - bug Bugbot persists a review then fails reconciliation with opaque provider.unavailableΒ #646
Description
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
5597906436and inline finding comment4335387140exist. - Finding ID:
backend/Dockerfile:20:healthcheck-requires-curl; fingerprintfp-dacef490, semantic fingerprintsf-5f2f6b3d. - Telemetry reports
candidateFindings=1,publishedFindings=0,findingStates.open=1,outcome=failedalthough 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-conversationretained 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
- Inspect workflow run 39579227152, job
119152380485, attempt 1. It reviews the exact head above in a same-repository human-authored PR. - Observe all five analysis partitions finishing and the native review/inline comment appearing.
- Observe the aggregate publication reporting failed finding mutations, followed by generic
provider.unavailableand a failedCopilot / Review. - 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.
Metadata
Metadata
Assignees
Labels
Type
Projects
- StatusShow more project fieldsDone
Activity
[-]bug: Bugbot persists a review then fails reconciliation with opaque provider.unavailable[/-][+]π - bug Bugbot persists a review then fails reconciliation with opaque provider.unavailable[/+]vypbot commentedon Oct 21, 2026
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 helpto see the available commands, or mention @vypbot with your question.efraespada commentedon Oct 21, 2026
Additional recovery evidence from the consumer:
/copilot dismiss "backend/Dockerfile:20:healthcheck-requires-curl"command succeeded in run 39581205762, with the receipt1 finding was dismissed.No repository source was changed.bugbot_review_context.tshasMAX_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 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.
efraespada commentedon Oct 21, 2026
Consumer recovery completed: run 39579227152, attempt 2 passed on the unchanged head
fb0a42edad02f9fd89088e5754cd5cf2bfddb44d. The aggregate now reportsoutcome=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
developat0741ee22dfaca8034975a81a4d1fc767863d89d2under 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.18 remaining items
vypbot commentedon Oct 21, 2026
Branch synchronized
developwas merged intobugfix/646-bug-bugbot-persists-a-review-then-fails-reconciliation-with-opaque-provider-unavailableand pushed as38b5eb4bfc7d7137e8df740665870c3f8ff561f3.6 verification checks passed.