Thanks to visit codestin.com
Credit goes to github.com

Skip to content

fix(source-intercom): improve scroll concurrency error#78017

Draft
devin-ai-integration[bot] wants to merge 2 commits into
masterfrom
devin/1778551689-source-intercom-scroll-error
Draft

fix(source-intercom): improve scroll concurrency error#78017
devin-ai-integration[bot] wants to merge 2 commits into
masterfrom
devin/1778551689-source-intercom-scroll-error

Conversation

@devin-ai-integration
Copy link
Copy Markdown
Contributor

What

Improve the Intercom Companies stream error message for HTTP 400 scroll concurrency failures.

Resolves https://github.com/airbytehq/airbyte-internal-issues/issues/16422
Related to https://github.com/airbytehq/oncall/issues/12575

How

  • Replaces the verbose scroll-concurrency HttpResponseFilter message with Intercom allows only one active company scroll per app.
  • Keeps the existing RETRY action and transient_error classification.
  • Bumps source-intercom from 0.13.22 to 0.13.23 and updates the changelog.

Review guide

  1. airbyte-integrations/connectors/source-intercom/manifest.yaml
  2. airbyte-integrations/connectors/source-intercom/metadata.yaml
  3. docs/integrations/sources/intercom.md

User Impact

Users should see a concise Intercom-specific message instead of a verbose retry/backoff message for Companies scroll concurrency failures.

Can this PR be safely reverted and rolled back?

  • YES 💚
  • NO ❌

Link to Devin session: https://app.devin.ai/sessions/fbed94f0038b405e96d866a04e1daca9

@devin-ai-integration
Copy link
Copy Markdown
Contributor Author

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment and CI monitoring

@github-actions
Copy link
Copy Markdown
Contributor

👋 Greetings, Airbyte Team Member!

Here are some helpful tips and reminders for your convenience.

💡 Show Tips and Tricks

PR Slash Commands

Airbyte Maintainers (that's you!) can execute the following slash commands on your PR:

  • 🛠️ Quick Fixes
    • /format-fix - Fixes most formatting issues.
    • /bump-version - Bumps connector versions, scraping changelog description from the PR title.
      • Bump types: patch (default), minor, major, major_rc, rc, promote.
      • The rc type is a smart default: applies minor_rc if stable, or bumps the RC number if already RC.
      • The promote type strips the RC suffix to finalize a release.
      • Example: /bump-version type=rc or /bump-version type=minor
    • /bump-progressive-rollout-version - Alias for /bump-version type=rc. Bumps with an RC suffix and enables progressive rollout.
  • ❇️ AI Testing and Review (internal link: AI-SDLC Docs):
    • /ai-prove-fix - Runs prerelease readiness checks, including testing against customer connections.
    • /ai-canary-prerelease - Rolls out prerelease to 5-10 connections for canary testing.
    • /ai-review - AI-powered PR review for connector safety and quality gates.
  • 📝 AI Documentation:
    • /ai-docs-review - AI-powered documentation review for PRs with connector changes.
    • /ai-create-docs-pr - Creates a documentation PR for connector changes, stacked on the current PR.
  • 🚀 Connector Releases:
    • /publish-connectors-prerelease - Publishes pre-release connector builds (tagged as {version}-preview.{git-sha}) for all modified connectors in the PR.
  • ☕️ JVM connectors:
    • /update-connector-cdk-version connector=<CONNECTOR_NAME> - Updates the specified connector to the latest CDK version.
      Example: /update-connector-cdk-version connector=destination-bigquery
  • 🐍 Python connectors:
    • /poe connector source-example lock - Run the Poe lock task on the source-example connector, committing the results back to the branch.
    • /poe source example lock - Alias for /poe connector source-example lock.
    • /poe source example use-cdk-branch my/branch - Pin the source-example CDK reference to the branch name specified.
    • /poe source example use-cdk-latest - Update the source-example CDK dependency to the latest available version.
  • ⚙️ Admin commands:
    • /force-merge reason="<REASON>" - Force merges the PR using admin privileges, bypassing CI checks. Requires a reason.
      Example: /force-merge reason="CI is flaky, tests pass locally"
📚 Show Repo Guidance

Helpful Resources

📝 Edit this welcome message.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 12, 2026

source-intercom Connector Test Results

13 tests   9 ✅  13s ⏱️
 2 suites  4 💤
 2 files    0 ❌

Results for commit f2eb06f.

♻️ This comment has been updated with latest results.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 12, 2026

Deploy preview for airbyte-docs ready!

Project:airbyte-docs
Status: ✅  Deploy successful!
Preview URL:https://airbyte-docs-778rj9zhm-airbyte-growth.vercel.app
Latest Commit:f2eb06f

Deployed with vercel-action

@devin-ai-integration
Copy link
Copy Markdown
Contributor Author

↪️ Triggering /ai-prove-fix per Hands-Free AI Triage Project triage next step.

Reason: Draft source-intercom scroll-error fix PR has CI passing and no /ai-prove-fix evidence found.

#78017


Devin session

@octavia-bot
Copy link
Copy Markdown
Contributor

octavia-bot Bot commented May 12, 2026

🔍 AI Prove Fix session starting... Running readiness checks and testing against customer connections. View playbook

Devin AI session created successfully!

@devin-ai-integration
Copy link
Copy Markdown
Contributor Author

devin-ai-integration Bot commented May 12, 2026

Fix Validation Evidence

Status: Fix/Feature Proven Successfully. I found sufficient regression evidence that this PR changes the Companies scroll-concurrency message on the real affected path without introducing unexpected command or protocol differences.

Summary

Evidence

Regression attempt 3 used the privately reported affected connection in isolated comparison mode with only the affected companies stream selected and warm state enabled.

  • SPEC: control and target succeeded with no regression.
  • CHECK: control and target succeeded with no regression.
  • DISCOVER: control and target succeeded with no regression.
  • READ: control and target both reproduced the expected Intercom HTTP 400 scroll-concurrency failure path. Message counts were stable: LOG=19, TRACE=4, STATE=1, RECORD=0.

Observed behavior difference:

  • Control 0.13.22 surfaced the old scroll-concurrency text containing: Scroll already exists for this workspace. Retrying after backoff. Intercom API does not allow more than one scroll open per app at a time.
  • Target 0.13.23-preview.f2eb06f surfaced the new text: Intercom allows only one active company scroll per app.

This satisfies the proving criteria: the target version surfaces the intended new Companies scroll message on the affected error path, while the surrounding behavior remains consistent with the published control version.

Attempts

Recommendation

Ready for maintainer review/merge from a fix-validation standpoint. No live connection pinning was needed because isolated comparison regression testing reproduced the target error path and proved the intended message change.

Suggested canary/e2e validation after merge: monitor source-intercom sync failures for the Companies scroll-concurrency text and confirm new failures aggregate under the shorter deterministic message.

Pre-flight Checks
  • Viability: The PR changes the Companies stream HttpResponseFilter message for the reported HTTP 400 scroll-concurrency condition and bumps source-intercom from 0.13.22 to 0.13.23.
  • Design intent: Intercom's single active company scroll constraint is documented in the connector's CONTRIBUTING.md; the PR changes only the user-facing text, not retry behavior or stream coordination.
  • Safety: The diff is limited to one manifest error string, metadata version, and documentation changelog. No suspicious code, obfuscation, credential access, or new network paths were found.
  • Breaking change: No schema, PK, cursor, spec/config, stream, or state format changes were found. No breaking-change PR metadata signals were present.
  • Reversibility: Patch version bump only; no state/config writes or schema changes. Rollback to the previous connector version remains straightforward.
  • Pin exclusion: The privately reported source actor was checked and is not version-pinned.

Devin session

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 12, 2026

Pre-release Connector Publish Started

Publishing pre-release build for connector source-intercom.
PR: #78017

Pre-release versions will be tagged as {version}-preview.f2eb06f
and are available for version pinning via the scoped_configuration API.

View workflow run
Pre-release Publish: SUCCESS

Docker image (pre-release):
airbyte/source-intercom:0.13.23-preview.f2eb06f

Docker Hub: https://hub.docker.com/layers/airbyte/source-intercom/0.13.23-preview.f2eb06f

Registry JSON:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant