Skip to content

fix: update source-twilio with HTTP cache disabled and configurable slice duration#74799

Draft
devin-ai-integration[bot] wants to merge 8 commits intomasterfrom
devin/1773352645-disable-http-cache
Draft

fix: update source-twilio with HTTP cache disabled and configurable slice duration#74799
devin-ai-integration[bot] wants to merge 8 commits intomasterfrom
devin/1773352645-disable-http-cache

Conversation

@devin-ai-integration
Copy link
Copy Markdown
Contributor

@devin-ai-integration devin-ai-integration Bot commented Mar 12, 2026

What

Combines two changes for the source-twilio connector:

  1. Disable HTTP response caching — Updates the base image to a CDK prerelease that has HTTP response caching hardcoded off (_use_cache = False in HttpClient.__init__). This addresses unbounded container memory growth (up to 8 GB) caused by the requests_cache SQLite backend accumulating cached HTTP responses in OS page cache. Investigation confirmed that disabling caching entirely keeps container memory stable at ~300 MB.

  2. Add configurable slice step duration (cherry-picked from #72494) — Adds a new slice_step_duration configuration option with enum values P1D (1 Day), P1W (1 Week), P1M (1 Month), P1Y (1 Year). The default is changed from P1Y to P1M, which reduces the time window per slice and may help avoid timeouts for accounts with large data volumes.

Related CDK PR: airbytehq/airbyte-python-cdk#952

How

  • metadata.yaml — Bumps baseImage from source-declarative-manifest:7.6.5 to source-declarative-manifest:7.13.0.post3.dev23025648211 (CDK prerelease with cache disabled). Bumps dockerImageTag from 0.17.4 to 0.17.6.
  • manifest.yaml — Replaces hardcoded step: P1Y with step: "{{ config.get('slice_step_duration', 'P1M') }}" in both incremental sync cursor definitions. Adds the slice_step_duration spec property with enum values and labels.
  • unit_tests/test_streams.py — Adjusts test date ranges to work with the new 1-month default slice window.
  • docs/integrations/sources/twilio.md — Adds changelog entries for 0.17.5 (slice duration feature from feat(source-twilio): Add configurable slice step duration (default: 1 month) #72494) and 0.17.6 (cache disable + slice duration combined).

Updates since last revision

  • Version bumped from 0.17.50.17.6: The prerelease publish for 0.17.5-preview.e8ab5d2 was incorrectly stored in the connector registry with dockerImageTag: "0.17.5" (without the preview suffix), causing version pins in retool to be overwritten with the base version. Bumping to 0.17.6 avoids this collision with the existing 0.17.5 prerelease from PR feat(source-twilio): Add configurable slice step duration (default: 1 month) #72494.

Review guide

  1. airbyte-integrations/connectors/source-twilio/metadata.yaml — Verify the CDK prerelease version/digest and the version bump to 0.17.6
  2. airbyte-integrations/connectors/source-twilio/manifest.yaml — Verify the Jinja template {{ config.get('slice_step_duration', 'P1M') }} is correct in both cursor definitions, and the new spec property is well-formed
  3. airbyte-integrations/connectors/source-twilio/unit_tests/test_streams.py — Verify test date ranges are consistent with 1-month slicing
  4. docs/integrations/sources/twilio.md — Changelog entries for both 0.17.5 and 0.17.6

Key things to verify:

  • The referenced CDK prerelease (7.13.0.post3.dev23025648211) contains only the cache disable change from CDK PR #952 — no ddtrace, jemalloc, or other experimental changes
  • This is a prerelease CDK version (not a stable release), intended for pinning to a specific user in production
  • The default slice duration change from P1YP1M means ~12x more API requests for existing connections that don't set this config option
  • Changelog includes entry for 0.17.5 (from feat(source-twilio): Add configurable slice step duration (default: 1 month) #72494) — if that PR is merged separately, this could cause a duplicate entry

User Impact

  • Twilio connector will no longer cache HTTP responses, preventing container OOM kills from page cache growth
  • Default slice window reduced from 1 year to 1 month — users with large data volumes should see fewer timeouts, but syncs may take longer due to more API calls
  • Users can now configure slice_step_duration to tune the trade-off between request count and per-request data volume
  • Intended to be pinned to a specific production user experiencing memory issues

Can this PR be safely reverted and rolled back?

  • YES 💚

Link to Devin Session: https://app.devin.ai/sessions/92b4f9310d1e4f4e9e3b66232e5311d3
Requested by: gl_anatolii.yatsuk


Open with Devin

Co-Authored-By: gl_anatolii.yatsuk <gl_anatolii.yatsuk@airbyte.io>
@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

@octavia-bot
Copy link
Copy Markdown
Contributor

octavia-bot Bot commented Mar 12, 2026

Note

📝 PR Converted to Draft

More info...

Thank you for creating this PR. As a policy to protect our engineers' time, Airbyte requires all PRs to be created first in draft status. Your PR has been automatically converted to draft status in respect for this policy.

As soon as your PR is ready for formal review, you can proceed to convert the PR to "ready for review" status by clicking the "Ready for review" button at the bottom of the PR page.

To skip draft status in future PRs, please include [ready] in your PR title or add the skip-draft-status label when creating your PR.

@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.
  • ❇️ 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.
  • 🚀 Connector Releases:
    • /publish-connectors-prerelease - Publishes pre-release connector builds (tagged as {version}-preview.{git-sha}) for all modified connectors in the PR.
    • /bump-progressive-rollout-version - Bumps connector version with an RC suffix (2.16.10-rc.1) for progressive rollouts (enableProgressiveRollout: true).
      • Example: /bump-progressive-rollout-version changelog="Add new feature for progressive rollout"
  • ☕️ 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.

@tolik0
Copy link
Copy Markdown
Contributor

/publish-connectors-prereleas

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

/publish-connectors-prerelease

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Mar 12, 2026

Pre-release Connector Publish Started

Publishing pre-release build for connector source-twilio.
PR: #74799

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

View workflow run
Pre-release Publish: SUCCESS

Docker image (pre-release):
airbyte/source-twilio:0.17.4-preview.0640b77

Docker Hub: https://hub.docker.com/layers/airbyte/source-twilio/0.17.4-preview.0640b77

Registry JSON:

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Mar 12, 2026

source-twilio Connector Test Results

21 tests   18 ✅  29s ⏱️
 2 suites   3 💤
 2 files     0 ❌

Results for commit 54a8785.

♻️ This comment has been updated with latest results.

Co-Authored-By: gl_anatolii.yatsuk@airbyte.io <gl_anatolii.yatsuk@airbyte.io>
Co-Authored-By: gl_anatolii.yatsuk@airbyte.io <gl_anatolii.yatsuk@airbyte.io>
Co-Authored-By: gl_anatolii.yatsuk@airbyte.io <gl_anatolii.yatsuk@airbyte.io>
Copy link
Copy Markdown
Contributor Author

@devin-ai-integration devin-ai-integration Bot left a comment

Choose a reason for hiding this comment

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

Devin Review found 1 potential issue.

View 1 additional finding in Devin Review.

Open in Devin Review

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

🔴 Missing dockerImageTag bump when base image is changed

The base image is updated from source-declarative-manifest:7.6.5 to 7.13.0.post3.dev23025648211, but the dockerImageTag remains at 0.17.4. The established pattern in this repo is to bump dockerImageTag whenever the base image changes. For example, the previous base-image update for this same connector (commit 0a33617a489) bumped dockerImageTag from 0.17.3 to 0.17.4 alongside the CDK change. Similarly, source-intercom (commit 13a2c42c562) bumped from 0.13.16-rc.4 to 0.13.16-rc.5 when it switched to its .dev CDK image. Without a version bump, either: (1) the CI/CD system will overwrite the already-published stable 0.17.4 image (which used CDK 7.6.5) with one built on a dev CDK, silently changing behavior for existing users, or (2) the CI may skip the build entirely because the tag is unchanged, so the fix never deploys.

(Refers to line 16)

Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

This is addressed — dockerImageTag was bumped from 0.17.4 to 0.17.5 in a subsequent commit (cherry-picked from #72494). The latest state of the file has dockerImageTag: 0.17.5.

@devin-ai-integration devin-ai-integration Bot changed the title fix: update source-twilio base image to CDK with HTTP caching disabled fix: update source-twilio with HTTP cache disabled and configurable slice duration Mar 24, 2026
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Mar 24, 2026

Deploy preview for airbyte-docs ready!

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

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

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

/publish-connectors-prerelease

@tolik0
Copy link
Copy Markdown
Contributor

Anatolii Yatsuk (tolik0) commented Mar 24, 2026

/publish-connectors-prerelease

Pre-release Connector Publish Started

Publishing pre-release build for connector source-twilio.
PR: #74799

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

View workflow run
Pre-release Publish: SUCCESS

Docker image (pre-release):
airbyte/source-twilio:0.17.5-preview.e8ab5d2

Docker Hub: https://hub.docker.com/layers/airbyte/source-twilio/0.17.5-preview.e8ab5d2

Registry JSON:

@tolik0
Copy link
Copy Markdown
Contributor

Anatolii Yatsuk (tolik0) commented Mar 24, 2026

/publish-connectors-prerelease

Pre-release Connector Publish Started

Publishing pre-release build for connector source-twilio.
PR: #74799

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

View workflow run
Pre-release Publish FAILED for source-twilio.

…n with 0.17.5

Co-Authored-By: gl_anatolii.yatsuk <gl_anatolii.yatsuk@airbyte.io>
@devin-ai-integration
Copy link
Copy Markdown
Contributor Author

/publish-connectors-prerelease

@tolik0
Copy link
Copy Markdown
Contributor

Anatolii Yatsuk (tolik0) commented Mar 24, 2026

/publish-connectors-prerelease

Pre-release Connector Publish Started

Publishing pre-release build for connector source-twilio.
PR: #74799

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

View workflow run
Pre-release Publish FAILED for source-twilio.

@tolik0
Copy link
Copy Markdown
Contributor

Anatolii Yatsuk (tolik0) commented Mar 25, 2026

/publish-connectors-prerelease

Pre-release Connector Publish Started

Publishing pre-release build for connector source-twilio.
PR: #74799

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

View workflow run
Pre-release Publish FAILED for source-twilio.

@tolik0
Copy link
Copy Markdown
Contributor

Anatolii Yatsuk (tolik0) commented Mar 25, 2026

/publish-connectors-prerelease

Pre-release Connector Publish Started

Publishing pre-release build for connector source-twilio.
PR: #74799

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

View workflow run
Pre-release Publish: SUCCESS

Docker image (pre-release):
airbyte/source-twilio:0.17.6-preview.41ab259

Docker Hub: https://hub.docker.com/layers/airbyte/source-twilio/0.17.6-preview.41ab259

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.

3 participants