Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix D1 Export error handling when presigned URLs are invalid #8131

Merged
merged 5 commits into from
Feb 18, 2025

Conversation

lambrospetrou
Copy link
Contributor

@lambrospetrou lambrospetrou commented Feb 13, 2025

Fixes error handling for CFSQL-1205 (https://www.cloudflarestatus.com/incidents/x2vwc84qvwx3).

When the presigned URLs generated during export are invalid, wrangler was just outputting the broken response into the SQL file.

This change adds a validation that the request was successful before writing it to the file so that users get immediate feedback that it went wrong. Main change is in packages/wrangler/src/d1/export.ts.


  • Tests
    • TODO (before merge)
    • Tests included
    • Tests not necessary because:
  • Wrangler E2E Tests CI Job required? (Use "e2e" label or ask maintainer to run separately)
    • I don't know
    • Required
    • Not required because: covered by the normal tests.
  • Public documentation
    • TODO (before merge)
    • Cloudflare docs PR(s):
    • Documentation not necessary because: Nothing changed.

@lambrospetrou lambrospetrou requested review from a team as code owners February 13, 2025 13:06
Copy link

changeset-bot bot commented Feb 13, 2025

🦋 Changeset detected

Latest commit: 1d3d61c

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 2 packages
Name Type
wrangler Minor
@cloudflare/vitest-pool-workers Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

Copy link
Contributor

github-actions bot commented Feb 13, 2025

A wrangler prerelease is available for testing. You can install this latest build in your project with:

npm install --save-dev https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/13387657464/npm-package-wrangler-8131

You can reference the automatically updated head of this PR with:

npm install --save-dev https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/prs/8131/npm-package-wrangler-8131

Or you can use npx with this latest build directly:

npx https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/13387657464/npm-package-wrangler-8131 dev path/to/script.js
Additional artifacts:

cloudflare-workers-bindings-extension:

wget https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/13387657464/npm-package-cloudflare-workers-bindings-extension-8131 -O ./cloudflare-workers-bindings-extension.0.0.0-v0d6afc3cf.vsix && code --install-extension ./cloudflare-workers-bindings-extension.0.0.0-v0d6afc3cf.vsix

create-cloudflare:

npx https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/13387657464/npm-package-create-cloudflare-8131 --no-auto-update

@cloudflare/kv-asset-handler:

npm install https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/13387657464/npm-package-cloudflare-kv-asset-handler-8131

miniflare:

npm install https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/13387657464/npm-package-miniflare-8131

@cloudflare/pages-shared:

npm install https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/13387657464/npm-package-cloudflare-pages-shared-8131

@cloudflare/unenv-preset:

npm install https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/13387657464/npm-package-cloudflare-unenv-preset-8131

@cloudflare/vite-plugin:

npm install https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/13387657464/npm-package-cloudflare-vite-plugin-8131

@cloudflare/vitest-pool-workers:

npm install https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/13387657464/npm-package-cloudflare-vitest-pool-workers-8131

@cloudflare/workers-editor-shared:

npm install https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/13387657464/npm-package-cloudflare-workers-editor-shared-8131

@cloudflare/workers-shared:

npm install https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/13387657464/npm-package-cloudflare-workers-shared-8131

@cloudflare/workflows-shared:

npm install https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/13387657464/npm-package-cloudflare-workflows-shared-8131

Note that these links will no longer work once the GitHub Actions artifact expires.


[email protected] includes the following runtime dependencies:

Package Constraint Resolved
miniflare workspace:* 3.20250204.1
workerd 1.20250214.0 1.20250214.0
workerd --version 1.20250214.0 2025-02-14

Please ensure constraints are pinned, and miniflare/workerd minor versions match.

@lambrospetrou lambrospetrou force-pushed the lambros/fix-d1-presigned-urls-validation branch 3 times, most recently from cde69e8 to 77f77bf Compare February 13, 2025 15:44
Copy link

@simonha9 simonha9 left a comment

Choose a reason for hiding this comment

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

lgtm

@lambrospetrou lambrospetrou force-pushed the lambros/fix-d1-presigned-urls-validation branch from 0d39adc to 1d3d61c Compare February 18, 2025 09:44
@penalosa penalosa merged commit efd7f97 into main Feb 18, 2025
16 checks passed
@penalosa penalosa deleted the lambros/fix-d1-presigned-urls-validation branch February 18, 2025 11:22
@lrapoport-cf lrapoport-cf mentioned this pull request Feb 18, 2025
9 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

4 participants