Skip to content

fix(storage): restore TLS for opendal GCS backend after 0.55→0.56 bump#6478

Open
fmassot wants to merge 1 commit into
mainfrom
fix/gcs-opendal-tls
Open

fix(storage): restore TLS for opendal GCS backend after 0.55→0.56 bump#6478
fmassot wants to merge 1 commit into
mainfrom
fix/gcs-opendal-tls

Conversation

@fmassot
Copy link
Copy Markdown
Collaborator

@fmassot fmassot commented May 30, 2026

NOT TO MERGE

PR was opened with Claude without full review.

Summary

  • opendal 0.56 moved its internal HTTP client from reqwest 0.12 to reqwest 0.13 (different Cargo semver major)
  • With default-features = false, opendal's reqwest 0.13 was compiled without any TLS backend — only the stream feature
  • Cargo no longer unifies features between the workspace reqwest 0.12 (which has rustls-tls) and opendal's reqwest 0.13, so TLS was silently missing
  • Every GCS request to https://storage.googleapis.com failed immediately with invalid URL, scheme is not http

Fix: explicitly enable reqwest-rustls-tls on the opendal workspace declaration. This feature was already in opendal's defaults but was stripped by default-features = false.

Only GCS is affected — S3 uses the AWS SDK, Azure's azure_storage_blobs sets enable_reqwest_rustls directly.

Regression introduced by #6432. Closes #6477.

Test plan

  • cargo tree -e features -i reqwest:0.13 -p quickwit-storage --features gcs shows reqwest feature "rustls" in the output
  • cargo build -p quickwit-storage --features gcs passes
  • GCS index ingest + split upload succeeds end-to-end

🤖 Generated with Claude Code

opendal 0.56 moved from reqwest 0.12 to reqwest 0.13. Because quickwit's
workspace uses reqwest 0.12, Cargo no longer unifies features across the
two separate majors. With `default-features = false`, opendal's reqwest
0.13 had no TLS backend, causing every GCS request to fail with:

  invalid URL, scheme is not http

Explicitly enable `reqwest-rustls-tls` (an opendal default feature) so
opendal's reqwest 0.13 is compiled with rustls regardless of the workspace
reqwest version.

Fixes #6477

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Copy link
Copy Markdown

@palkakrzysiek palkakrzysiek left a comment

Choose a reason for hiding this comment

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

Hi @fmassot, yes, this PR fixes the issue. Thanks for opening it.

The worrisome aspect of the issue is that no test caught the problem with connection to GCS after dependency upgrade. Please consider modifying existing tests to use secure connection, I put an example in https://github.com/quickwit-oss/quickwit/pull/6479/changes, it targets this PR branch (fix/gcs-opendal-tls) so feel free to merge if it makes sense to you.

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.

GCS split uploads fail with invalid URL, scheme is not http since opendal 0.56 (reqwest built without TLS)pr

2 participants