influxdata / influxdata/influxdb

[v3] 501 Not Implemented when using Backblaze B2 S3 endpoint as object store

Open
#27,260 5 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

team/storage v3 v3/core
Dominant language
Rust
Stars
31.7k
Forks
3.7k
Avg merge
13h 37m
Merged PRs (30d)
8

Description

__Steps to reproduce:__
List the minimal actions needed to reproduce the behaviour.

1. Install and run InfluxDB 3 Core (binary release, not custom build).
2. .Start the server using S3 object store pointing to a Backblaze B2 bucket:
influxdb3 serve \
--object-store s3 \
--bucket \
--aws-endpoint https://s3.us-east-005.backblazeb2.com \
--aws-default-region us-east-005 \
--aws-access-key-id \
--aws-secret-access-key \
--node-id node0
3. Watch logs.

__Expected behaviour:__
InfluxDB should successfully initialize the catalog and persist the snapshot file in the configured S3-compatible object store.

__Actual behaviour:__
InfluxDB fails to initialize the catalog due to repeated 501 Not Implemented responses when attempting to PUT the catalog snapshot file.

__Environment info:__
OS: Ubuntu Linux (VM)
Host: Virtual machine running on Linode
Architecture: x86_64
InfluxDB version: influxdb3-core 3.x (official prebuilt binary)
Not built from source (no custom RUSTFLAGS)
Running directly on host (not containerized)
Object store: Backblaze B2 S3-compatible endpoint (us-east-005)
Bucket exists and credentials are valid (verified via aws-cli)
The same configuration works when using AWS S3.

__Config:__
--object-store s3
Custom --aws-endpoint
Custom --aws-default-region
Access key + secret key provided explicitly

__Logs:__
```
influxdb3-core | 2026-03-02T15:48:23.493955Z INFO influxdb3_lib::commands::serve: InfluxDB 3 Core server starting node_id=node0 git_hash= version=3.8.3 uuid= num_cpus=1
influxdb3-core | 2026-03-02T15:48:23.495247Z INFO influxdb3_clap_blocks::object_store: Object Store bucket=Some("") endpoint=Some(Endpoint("https://s3.us-east-005.backblazeb2.com")) object_store_type="S3"
influxdb3-core | 2026-03-02T15:48:23.600939Z INFO influxdb3_lib::commands::serve: initialising parquet cache
influxdb3-core | 2026-03-02T15:48:23.601360Z INFO influxdb3_lib::commands::serve: Creating shared query executor num_threads=1
influxdb3-core | 2026-03-02T15:48:23.795037Z INFO influxdb3_catalog::object_store::versions::v2: catalog not found, creating a new one catalog_uuid=
influxdb3-core | 2026-03-02T15:48:23.828569Z INFO object_store::client::retry: Encountered server error with status 501 Not Implemented, backing off for 0.1 seconds, retry 1 of 10
(repeated tries...)
influxdb3-core | 2026-03-02T15:48:26.410539Z INFO object_store::client::retry: Encountered server error with status 501 Not Implemented, backing off for 0.35684943 seconds, retry 10 of 10
```

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the `influxdb_clap_blocks::object_store` entry point and the `influxdb_catalog::object_store::versions::v2` catalog initialization path; inspect the `object_store::client::retry` 501 response while reproducing with the Backblaze B2 endpoint. Compare the behavior with AWS S3. Done means InfluxDB initializes the catalog and persists its snapshot in the configured B2-compatible store.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
cloud, databases
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.