Skip to content

Fix: Allow partial integration results when some providers have authentication failures#4748

Open
Copilot wants to merge 6 commits intomainfrom
copilot/fix-integration-error-launchpad
Open

Fix: Allow partial integration results when some providers have authentication failures#4748
Copilot wants to merge 6 commits intomainfrom
copilot/fix-integration-error-launchpad

Conversation

Copy link
Contributor

Copilot AI commented Nov 13, 2025

Fixes: #4492

image

(More screenshots are in the issue #4492)

Copilot AI changed the title [WIP] Fix integration error due to bad Azure credentials Fix: Allow partial integration results when some providers have authentication failures Nov 13, 2025
Copilot AI requested a review from sergeibbb November 13, 2025 13:47
sergeibbb added a commit that referenced this pull request Nov 13, 2025
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)
@sergeibbb sergeibbb force-pushed the copilot/fix-integration-error-launchpad branch from a154fa5 to 914781c Compare November 13, 2025 14:31
@sergeibbb sergeibbb removed their request for review November 13, 2025 14:31
sergeibbb added a commit that referenced this pull request Nov 17, 2025
Shows the error on Launchpad anong with PRs.
(#4748, #4492)
sergeibbb added a commit that referenced this pull request Nov 17, 2025
Shows the error on Launchpad anong with PRs.
(#4748, #4492)
sergeibbb added a commit that referenced this pull request Nov 17, 2025
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)
sergeibbb added a commit that referenced this pull request Nov 17, 2025
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)
sergeibbb added a commit that referenced this pull request Nov 17, 2025
Shows the error on Launchpad anong with PRs.
(#4748, #4492)
@sergeibbb sergeibbb force-pushed the copilot/fix-integration-error-launchpad branch from d4f9c6d to 75d7275 Compare November 17, 2025 13:46
sergeibbb added a commit that referenced this pull request Nov 17, 2025
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)
sergeibbb added a commit that referenced this pull request Nov 18, 2025
(#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.
sergeibbb added a commit that referenced this pull request Nov 18, 2025
sergeibbb added a commit that referenced this pull request Nov 28, 2025
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)
sergeibbb added a commit that referenced this pull request Nov 28, 2025
Shows the error on Launchpad anong with PRs.
(#4748, #4492)
@sergeibbb sergeibbb force-pushed the copilot/fix-integration-error-launchpad branch from 75d7275 to 031e12a Compare November 28, 2025 18:24
sergeibbb added a commit that referenced this pull request Nov 28, 2025
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)
@sergeibbb sergeibbb force-pushed the copilot/fix-integration-error-launchpad branch from 031e12a to 00a6622 Compare December 1, 2025 11:54
sergeibbb added a commit that referenced this pull request Jan 29, 2026
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)
sergeibbb added a commit that referenced this pull request Jan 29, 2026
Shows the error on Launchpad anong with PRs.
(#4748, #4492)
@sergeibbb sergeibbb force-pushed the 4944-cache-auth-errors branch 3 times, most recently from 68ec239 to c6ccc34 Compare February 24, 2026 16:07
sergeibbb added a commit that referenced this pull request Feb 24, 2026
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)
sergeibbb added a commit that referenced this pull request Feb 24, 2026
Shows the error on Launchpad anong with PRs.
(#4748, #4492)
@sergeibbb sergeibbb force-pushed the copilot/fix-integration-error-launchpad branch from 6629383 to 5bfdfe8 Compare February 24, 2026 16:11
sergeibbb added a commit that referenced this pull request Feb 24, 2026
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)
sergeibbb added a commit that referenced this pull request Feb 24, 2026
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)
@sergeibbb sergeibbb requested a review from Copilot February 24, 2026 16:28
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 IntegrationResult type to allow both value and error to 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.

@sergeibbb sergeibbb marked this pull request as ready for review February 24, 2026 18:22
@augmentcode
Copy link

augmentcode bot commented Feb 24, 2026

🤖 Augment PR Summary

Summary: Improves Launchpad resiliency by allowing PR lists to load from healthy integrations even when another provider fails authentication.

Changes:

  • Update IntegrationService.getMyPullRequestsCore() to aggregate successful PRs and surface provider errors separately.
  • Relax IntegrationResult and LaunchpadCategorizedResult to support partial results (value/items plus an optional error).
  • Launchpad QuickPick now shows an inline warning item when some providers fail, with buttons to reconnect and/or open logs.
  • Launchpad tree view now prepends a warning MessageNode when partial errors occur, plus adds context-menu actions for reconnect/logs.
  • Add new view commands + menu contributions (Connect Integration, Open Logs) for Launchpad error nodes.
  • Home webview Launchpad item lookup now also treats missing items as a non-result condition.

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 👎

Copy link

@augmentcode augmentcode bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review completed. 3 suggestions posted.

Fix All in Augment

Comment augment review to trigger a new review at any time.

@sergeibbb sergeibbb force-pushed the 4944-cache-auth-errors branch from c6ccc34 to aa01d59 Compare February 26, 2026 14:08
sergeibbb added a commit that referenced this pull request Feb 26, 2026
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)
sergeibbb added a commit that referenced this pull request Feb 26, 2026
Shows the error on Launchpad anong with PRs.
(#4748, #4492)
@sergeibbb sergeibbb force-pushed the copilot/fix-integration-error-launchpad branch from 5bfdfe8 to 67a433c Compare February 26, 2026 14:08
sergeibbb added a commit that referenced this pull request Feb 26, 2026
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)
sergeibbb added a commit that referenced this pull request Feb 26, 2026
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)
sergeibbb added a commit that referenced this pull request Feb 26, 2026
Refactors the quick pick item construction when not actively filtering. This change consistently uses the already prepared list of items, ensuring uniformity with the filtering path and avoiding redundant processing.

(#4492, #4748)
@sergeibbb sergeibbb requested a review from d13 February 26, 2026 14:17
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)
Shows the error on Launchpad anong with PRs.
(#4748, #4492)
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)
Refactors the quick pick item construction when not actively filtering. This change consistently uses the already prepared list of items, ensuring uniformity with the filtering path and avoiding redundant processing.

(#4492, #4748)
Sign up for free to 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.

Bad credential of one integration ruins other integrations on Launchpad

4 participants