Skip to content

Conversation

devin-ai-integration[bot]
Copy link
Contributor

@devin-ai-integration devin-ai-integration bot commented Oct 10, 2025

What

Fixes sync failures in Zendesk Chat connector when encountering 404 errors for deleted records during incremental syncs. Resolves oncall issue #9459.

The connector was failing entire syncs when the Zendesk API returned 404 responses for records that had been deleted between sync runs, particularly affecting the chats and agent_timeline incremental streams.

How

Added response filters to the DefaultErrorHandler configuration for the chats and agent_timeline streams in the declarative manifest. The filters:

  • Target HTTP 404 status codes specifically
  • Set action to IGNORE to skip the missing records rather than fail the sync
  • Include a descriptive error message for debugging: "Record not found (likely deleted). Skipping."

Also includes necessary version bump (1.2.20 → 1.2.21) and documentation updates.

Review guide

  1. airbyte-integrations/connectors/source-zendesk-chat/manifest.yaml - Core fix adding 404 response filters to two stream definitions (lines 119-122, 254-257)
  2. airbyte-integrations/connectors/source-zendesk-chat/metadata.yaml - Version increment
  3. docs/integrations/sources/zendesk-chat.md - Changelog entry addition
  4. docs/integrations/sources/zendesk-chat-migrations.md - Header formatting fix (CI requirement)

Key review points:

  • ⚠️ Verify that IGNORE is the correct action for 404s on these streams (vs failing fast on data inconsistency)
  • ⚠️ Consider if other incremental streams might need similar 404 handling
  • ⚠️ Confirm this approach won't mask legitimate API issues or cause data gaps

User Impact

Positive:

  • Incremental syncs will no longer fail when encountering deleted records
  • More reliable data pipeline operation for Zendesk Chat users

Potential risks:

  • Deleted records are silently skipped (expected behavior, but worth noting)
  • If 404s occur for other reasons (API issues, auth problems), they will also be ignored for these streams

Can this PR be safely reverted and rolled back?

  • YES 💚

Reverting would restore the previous error handling behavior where 404s cause sync failures.


Requested by: @agarctfi
Devin session: https://app.devin.ai/sessions/f70a175bc7ab4c1fa56735434bd3ad45

Add response_filters to error handlers for chats and agent_timeline streams to gracefully ignore 404 errors when encountering deleted records. This prevents sync failures when the API returns 404 for records that have been deleted.

Fixes airbytehq/oncall#9459

Co-Authored-By: unknown <>
Copy link
Contributor Author

Original prompt from API User
Comment from @agarctfi: /ai-fix\n\nIMPORTANT: The user will expect a response posted back to the PR. You should post exactly one comment back to the respective issue PR. If the user requested a code change or PR, your comment should contain a link to the PR. Assume the user has no access to your session or conversation thread unless/until you respond back to them.\n\nIssue #9459 by @kyleesoper: Maintain: Zendesk Chat Connector: Sync Fails with 404 Errors on Deleted Records\n\nIssue URL: https://github.com/airbytehq/oncall/issues/9459\n\nPlease use playbook macro: !issue_fix

PLAYBOOK_md:
# AI Fix Playbook

You are AI Fix Devin, an expert at reproducing and fixing Airbyte-related issues.

## Context
You are working on the issue linked above in context. You will also need to pull issue comments for full context.

## Rule: Immediate Issue Comment After PR Creation
**MANDATORY REQUIREMENT**: If you create a PR during an AI Fix workflow, your **first action** after creating the PR must be to create a comment on the originating issue. If you cannot create a PR, likewise, your action should be to comment back to the issue.

## Your Task: Reproduce and Fix

1. **Analysis**: Read the complete issue content including all comments for full context.

2. **Research**: Check the internet and Airbyte repositories for:
   - Similar issues and their solutions
   - Known bugs or limitations
   - Recent changes that might have introduced the problem

3. **Environment Setup**: Verify and set up the necessary environment:
   - Check available credentials and access
   - Set up Airbyte repositories and dependencies
   - Prepare test environment for reproduction

4. **Reproduction Attempt**: Try to reproduce the issue:
   - Follow the exact steps described in the issue
   - Document your reproduction process
   - Capture logs, errors, and diagnostic information

5. **Root Cause Analysis**: If reproduction is successful:
   - Analyze the root cause of the issue
   - Identify the specific c... (1657 chars truncated...)

Copy link
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

Copy link
Contributor

👋 Greetings, Airbyte Team Member!

Here are some helpful tips and reminders for your convenience.

Helpful Resources

PR Slash Commands

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

  • /format-fix - Fixes most formatting issues.
  • /bump-version - Bumps connector versions.
    • You can specify a custom changelog by passing changelog. Example: /bump-version changelog="My cool update"
    • Leaving the changelog arg blank will auto-populate the changelog from the PR title.
  • /run-cat-tests - Runs legacy CAT tests (Connector Acceptance Tests)
  • /build-connector-images - Builds and publishes a pre-release docker image for the modified connector(s).
  • 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
    • /bump-bulk-cdk-version type=patch changelog='foo' - Bump the Bulk CDK's version. type can be major/minor/patch.
  • 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.

📝 Edit this welcome message.

Copy link
Contributor

github-actions bot commented Oct 10, 2025

source-zendesk-chat Connector Test Results

8 tests   4 ✅  10s ⏱️
2 suites  4 💤
2 files    0 ❌

Results for commit b03b17c.

♻️ This comment has been updated with latest results.

Copy link
Contributor Author

/bump-version type=patch

@devin-ai-integration devin-ai-integration bot requested a review from a team as a code owner October 10, 2025 15:35
Copy link
Contributor

github-actions bot commented Oct 10, 2025

Deploy preview for airbyte-docs ready!

✅ Preview
https://airbyte-docs-3x8ingc2y-airbyte-growth.vercel.app

Built with commit b03b17c.
This pull request is being automatically deployed with vercel-action

@agarctfi agarctfi removed the request for review from a team October 10, 2025 15:43
@agarctfi agarctfi closed this Oct 10, 2025
@agarctfi agarctfi reopened this Oct 10, 2025
Copy link
Contributor

👋 Greetings, Airbyte Team Member!

Here are some helpful tips and reminders for your convenience.

Helpful Resources

PR Slash Commands

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

  • /format-fix - Fixes most formatting issues.
  • /bump-version - Bumps connector versions.
    • You can specify a custom changelog by passing changelog. Example: /bump-version changelog="My cool update"
    • Leaving the changelog arg blank will auto-populate the changelog from the PR title.
  • /run-cat-tests - Runs legacy CAT tests (Connector Acceptance Tests)
  • /build-connector-images - Builds and publishes a pre-release docker image for the modified connector(s).
  • 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
    • /bump-bulk-cdk-version type=patch changelog='foo' - Bump the Bulk CDK's version. type can be major/minor/patch.
  • 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.

📝 Edit this welcome message.

@DanyloGL DanyloGL moved this from New PRs to Waiting Eng Team in 🧑‍🏭 Community Pull Requests Oct 13, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: Waiting Eng Team

Development

Successfully merging this pull request may close these issues.

2 participants