Fix: Allow partial integration results when some providers have authentication failures#4748
Fix: Allow partial integration results when some providers have authentication failures#4748
Conversation
Updates integration result handling to return an error only if all integration calls fail, allowing partial successes to be returned even when some calls encounter errors. Improves resilience and user feedback by ensuring that failures in some integrations do not prevent successful results from being delivered. (#4492, #4748)
a154fa5 to
914781c
Compare
Enhances the launchpad error display by detecting authentication errors and providing a clearer, actionable message with options to reconnect integrations directly from the UI. Aggregates multiple errors to surface the most relevant cause and streamlines error item creation for consistency. Improves user experience by making it easier to resolve integration authentication issues. (#4492, #4748)
Updates integration result handling to return an error only if all integration calls fail, allowing partial successes to be returned even when some calls encounter errors. Improves resilience and user feedback by ensuring that failures in some integrations do not prevent successful results from being delivered. (#4492, #4748)
d4f9c6d to
75d7275
Compare
Enhances the launchpad error display by detecting authentication errors and providing a clearer, actionable message with options to reconnect integrations directly from the UI. Aggregates multiple errors to surface the most relevant cause and streamlines error item creation for consistency. Improves user experience by making it easier to resolve integration authentication issues. (#4492, #4748)
(#4492, #4748) Introduces a "Show Output Channel" command accessible via command palette and context menus, with appropriate icons and menu placements. Enhances the Launchpad view to display actionable error messages, distinguishing authentication errors from general failures, and adds context-specific actions for resolving them. Improves user experience by making error states more visible and easier to address directly from the UI.
Updates integration result handling to return an error only if all integration calls fail, allowing partial successes to be returned even when some calls encounter errors. Improves resilience and user feedback by ensuring that failures in some integrations do not prevent successful results from being delivered. (#4492, #4748)
75d7275 to
031e12a
Compare
Enhances the launchpad error display by detecting authentication errors and providing a clearer, actionable message with options to reconnect integrations directly from the UI. Aggregates multiple errors to surface the most relevant cause and streamlines error item creation for consistency. Improves user experience by making it easier to resolve integration authentication issues. (#4492, #4748)
031e12a to
00a6622
Compare
Updates integration result handling to return an error only if all integration calls fail, allowing partial successes to be returned even when some calls encounter errors. Improves resilience and user feedback by ensuring that failures in some integrations do not prevent successful results from being delivered. (#4492, #4748)
68ec239 to
c6ccc34
Compare
Updates integration result handling to return an error only if all integration calls fail, allowing partial successes to be returned even when some calls encounter errors. Improves resilience and user feedback by ensuring that failures in some integrations do not prevent successful results from being delivered. (#4492, #4748)
6629383 to
5bfdfe8
Compare
Enhances the launchpad error display by detecting authentication errors and providing a clearer, actionable message with options to reconnect integrations directly from the UI. Aggregates multiple errors to surface the most relevant cause and streamlines error item creation for consistency. Improves user experience by making it easier to resolve integration authentication issues. (#4492, #4748)
Improves the user experience by displaying explicit error messages directly within the Launchpad view. This allows users to quickly understand issues preventing items from loading and provides immediate, context-sensitive actions. For authentication errors, a 'Connect Integration' command is provided to help resolve the issue. For other loading failures, an 'Open Logs' command helps with debugging. (#4492, #4748)
There was a problem hiding this comment.
Pull request overview
This PR fixes issue #4492 where authentication failures in one integration provider (e.g., Azure DevOps) would block all other integrations (e.g., GitHub) from displaying results in the Launchpad view and other consumers of pull request data.
Changes:
- Modified
IntegrationService.getMyPullRequestsCore()to collect successful results separately from errors, returning partial results when available - Updated
IntegrationResulttype to allow bothvalueanderrorto coexist, enabling partial success scenarios - Enhanced UI (Launchpad view and quickpick) to display both successful items and error indicators when partial failures occur
- Added commands and UI elements to help users reconnect integrations or view logs when errors occur
Reviewed changes
Copilot reviewed 10 out of 10 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| src/plus/integrations/integrationService.ts | Core fix: collect partial results and errors separately, return both when available |
| src/plus/integrations/models/integration.ts | Updated IntegrationResult type to allow value and error to coexist |
| src/plus/launchpad/launchpadProvider.ts | Propagate errors through result objects while preserving items |
| src/plus/launchpad/launchpad.ts | Display error indicators in quickpick UI with reconnect/logs buttons |
| src/views/launchpadView.ts | Display error nodes in tree view with inline action buttons |
| src/views/nodes/abstract/viewNode.ts | Added LaunchpadError context value |
| src/webviews/home/homeWebview.ts | Updated null checks to handle partial results |
| package.json | Registered new commands for error handling actions |
| contributions.json | Command definitions for connect integration and open logs |
| src/constants.commands.generated.ts | Generated command constants |
Comments suppressed due to low confidence (1)
src/plus/launchpad/launchpad.ts:1699
- When there are partial results (some integrations succeed, others fail), the telemetry only logs the error information and ignores the successful items. Consider logging both error information and item counts to get better visibility into partial success scenarios.
This would provide valuable insights into how often users experience partial failures and how many items they still see despite the errors.
if (context.result.error != null || !context.result.items) {
updatedContext = {
...context.telemetryContext,
'items.error': String(context.result.error ?? 'items not loaded'),
};
} else {
const grouped = countLaunchpadItemGroups(context.result.items);
updatedContext = {
...context.telemetryContext,
'items.count': context.result.items.length,
'items.timings.prs': context.result.timings?.prs,
'items.timings.codeSuggestionCounts': context.result.timings?.codeSuggestionCounts,
'items.timings.enrichedItems': context.result.timings?.enrichedItems,
'groups.count': grouped.size,
};
for (const [group, count] of grouped) {
updatedContext[`groups.${group}.count`] = count;
updatedContext[`groups.${group}.collapsed`] = context.collapsed.get(group);
}
}
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
🤖 Augment PR SummarySummary: Improves Launchpad resiliency by allowing PR lists to load from healthy integrations even when another provider fails authentication. Changes:
Technical Notes: This shifts PR retrieval to “best-effort” multi-provider behavior so authentication failures no longer mask results from other integrations. 🤖 Was this summary useful? React with 👍 or 👎 |
c6ccc34 to
aa01d59
Compare
Updates integration result handling to return an error only if all integration calls fail, allowing partial successes to be returned even when some calls encounter errors. Improves resilience and user feedback by ensuring that failures in some integrations do not prevent successful results from being delivered. (#4492, #4748)
5bfdfe8 to
67a433c
Compare
Enhances the launchpad error display by detecting authentication errors and providing a clearer, actionable message with options to reconnect integrations directly from the UI. Aggregates multiple errors to surface the most relevant cause and streamlines error item creation for consistency. Improves user experience by making it easier to resolve integration authentication issues. (#4492, #4748)
Improves the user experience by displaying explicit error messages directly within the Launchpad view. This allows users to quickly understand issues preventing items from loading and provides immediate, context-sensitive actions. For authentication errors, a 'Connect Integration' command is provided to help resolve the issue. For other loading failures, an 'Open Logs' command helps with debugging. (#4492, #4748)
Updates integration result handling to return an error only if all integration calls fail, allowing partial successes to be returned even when some calls encounter errors. Improves resilience and user feedback by ensuring that failures in some integrations do not prevent successful results from being delivered. (#4492, #4748)
Enhances the launchpad error display by detecting authentication errors and providing a clearer, actionable message with options to reconnect integrations directly from the UI. Aggregates multiple errors to surface the most relevant cause and streamlines error item creation for consistency. Improves user experience by making it easier to resolve integration authentication issues. (#4492, #4748)
Improves the user experience by displaying explicit error messages directly within the Launchpad view. This allows users to quickly understand issues preventing items from loading and provides immediate, context-sensitive actions. For authentication errors, a 'Connect Integration' command is provided to help resolve the issue. For other loading failures, an 'Open Logs' command helps with debugging. (#4492, #4748)
Fixes: #4492
(More screenshots are in the issue #4492)