Skip to content

Register blob request failed: HTTP 307 #1067

Description

@shekhar-rudder

Description

We’ve observed the following error twice in the past week - Register blob request failed: HTTP Status: 307 ErrorBody: .. Looking at the SDK logs, on both occasions the same pattern appeared: two flush calls were running concurrently (triggered internally by the SDK, not by our code), and those concurrent flushes happened to share a common channel.

First occurrence: The first batch failed.
Second occurrence: The second batch failed.

In both cases, no rows were ingested for the channels in the failed batch. The committed offset never advanced, which caused our pipelines to stall.

Channel Invalidation

In these scenarios, I would expect all channels in the failed batch to be invalidated. However:

  • In the first case, only the overlapping channel was invalidated. The error returned was The client provided an out-of-order message, please reopen the channel
  • In the second case, no channels were invalidated at all.

Question: Is this the expected behavior? If yes, what is the recommended way to handle it?

Stack Trace

2025-08-22 02:59:50,914 WARN  [net.sno.ing.con.ServiceResponseHandler] (ingest-register-thread) 307 Status hit from STREAMING_REGISTER_BLOB, requestId:

2025-08-22 02:59:50,920 ERROR [net.sno.ing.str.int.FlushService] (ingest-register-thread) [SF_INGEST] Background flush task failed, client=<redacted>, exception=net.snowflake.ingest.utils.SFException: Register blob request failed: HTTP Status: 307 ErrorBody: ., detail=Register blob request failed: HTTP Status: 307 ErrorBody: ., trace=
net.snowflake.ingest.streaming.internal.SnowflakeStreamingIngestClientInternal.registerBlobs(SnowflakeStreamingIngestClientInternal.java:609)
net.snowflake.ingest.streaming.internal.SnowflakeStreamingIngestClientInternal.registerBlobs(SnowflakeStreamingIngestClientInternal.java:535)
net.snowflake.ingest.streaming.internal.RegisterService.registerBlobs(RegisterService.java:197)
net.snowflake.ingest.streaming.internal.FlushService.lambda$registerFuture$4(FlushService.java:237)
java.base/java.util.concurrent.CompletableFuture$AsyncRun.run(Unknown Source)
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
java.base/java.lang.Thread.run(Unknown Source)

Environment

SDK: snowflake-ingest-sdk 4.0.0
Java version: 21

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions