Skip to content

[BUG] RST_STREAM non retryable error with version 2.12.2 #6271

Closed

Description

@JannikBrand

Describe the bug

After upgrading Data Prepper from 2.11.0 to 2.12.2 we get regular (every few seconds) error responses with the sender (e.g. OTel collector):

2025-11-14T15:25:00.935Z	error	internal/queue_sender.go:49	Exporting failed. Dropping data.	{"resource": {"service.instance.id": "84949179-7201-4a9d-924c-6a76d7982653", "service.name": "otelcol-contrib", "service.version": "0.139.0"}, "otelcol.component.id": "otlp", "otelcol.component.kind": "exporter", "otelcol.signal": "logs", "error": "not retryable error: Permanent error: rpc error: code = Internal desc = stream terminated by RST_STREAM with error code: INTERNAL_ERROR", "dropped_items": 50}
go.opentelemetry.io/collector/exporter/exporterhelper/internal.NewQueueSender.func1
	go.opentelemetry.io/collector/exporter/exporterhelper@v0.139.0/internal/queue_sender.go:49
go.opentelemetry.io/collector/exporter/exporterhelper/internal/queuebatch.(*disabledBatcher[...]).Consume
	go.opentelemetry.io/collector/exporter/exporterhelper@v0.139.0/internal/queuebatch/disabled_batcher.go:23
go.opentelemetry.io/collector/exporter/exporterhelper/internal/queue.(*asyncQueue[...]).Start.func1
	go.opentelemetry.io/collector/exporter/exporterhelper@v0.139.0/internal/queue/async_queue.go:49

When downgrading to 2.11.0 it disappears again.

We can't observe any warning/error logs during ingestion directly within Data Prepper.
However, we noticed this warning message during Data Prepper startup which wasn't there before and thought it might have something to do with the grpc errors:

2025-08-13T16:18:40,867 [main] WARN   com.linecorp.armeria.common.CommonPools - Failed to register the common worker group as non-blocking for Reactor. Please consider upgrading Reactor to 3.7.0 or newer.

To Reproduce
Steps to reproduce the behavior:

  1. Start DP version 2.12.2
  2. Run an OTel collector (latest version)
  3. Send Data to the OTel collector (e.g. tested with 500 OTel logs/s)
    E.g. with telemtrygen: telemetrygen logs --otlp-insecure --duration inf --rate 500
  4. Observer the error message every few seconds/minutes

Configuration of collector:

receivers:
  otlp:
    protocols:
      grpc:
        endpoint: 0.0.0.0:4317
      http:
        cors:
          allowed_origins:
            - "*"

processors:
  batch:
    send_batch_size: 50
    timeout: 1s

exporters:
  debug:
    verbosity: detailed
  otlp:
    endpoint: <PLACEHOLDER>
    tls:
      insecure_skip_verify: true
      cert_file: "./cert.crt"
      key_file: "./key.key"

service:
  telemetry:
    logs: 
      level: "warn"
  pipelines:
    logs:
      receivers: [otlp]
      processors: [batch]
      exporters: [debug, otlp]

Expected behavior
No non retryable error messages / dropped data

Screenshots

Environment (please complete the following information):

  • Running Data Prepper on K8s

Additional context

Activity

  1. JannikBrand commented on Nov 17, 2025

    @JannikBrand
    ContributorAuthor

    Couldn't reproduce this with docker compose yet..
    In might be related to something within our environment => 2 DP Pods in K8s; behind ingress-nginx; using gRPC

  2. JannikBrand commented on Nov 28, 2025

    @JannikBrand
    ContributorAuthor

    also the case for 2.13.0

  3. KarstenSchnitter commented on Dec 1, 2025

    @KarstenSchnitter
    Collaborator

    This looks like a conflict in the reactor-core versions. These dependencies are introduced by Armeria (causing the warning), Spring and the Azure libraries. Spring and Microsoft Office 365 Source remain on rather old versions which seems to be used. Spring itself does not pull the dependency with spring-core, spring-context, or spring-web. spring-webflux would use reactor-core:3.4.41, which is the version used in Data Prepper.

  4. kkondaka commented on Dec 2, 2025

    @kkondaka
    Collaborator

    @JannikBrand @KarstenSchnitter would either of you able to work on this?

  5. KarstenSchnitter commented on Dec 5, 2025

    @KarstenSchnitter
    Collaborator

    We are looking into it. We are not sure, what is causing the issues, yet.

  6. JannikBrand commented on Dec 8, 2025

    @JannikBrand
    ContributorAuthor

    We identified that the root cause of this issue is the current armeria version (1.32.5), which is affected by a couple of bugs that are mentioned to be fixed within the 1.33.0 release notes. Namely:

    • An unnecessary RST_STREAM frame is no longer sent by the server after an endStream frame has already been sent. #6279
    • Fixed a bug where HTTP/2 flow control did not work properly, and stream-level windowing was ignored. #6253 #6266

    It seems that versions 1.34.0 and 1.33.2 also had related bug fixes that might be affecting the current version:

    • Fixed HTTP/2 flow control by using a correct stream ID for computing the window size. #6367 #6371
    • A closing WebSocket session no longer sends an unnecessary RST_STREAM frame. #6375

    I built a custom DP version with armeria version 1.34.1 and necessary changes due to (transitive) dependency updates and could verify that this resolves the issues in our environment.

    I will align with @KarstenSchnitter tomorrow on providing the fix.

  7. added 2 commits that reference this issue on Dec 9, 2025
    31b739e
    3a23f06
  8. added a commit that references this issue on Dec 17, 2025
    30edade
  9. added a commit that references this issue on Dec 29, 2025
    381f7dc
  10. added 3 commits that reference this issue on Jan 14, 2026
    2d56871
    0da6da3
    c2006cb
  11. added 3 commits that reference this issue on Apr 28, 2026
    3c297d9
    59326bd
    4d10ccf
  12. added a commit that references this issue on Apr 29, 2026
    cbba661
  13. added a commit that references this issue on Apr 30, 2026
    1dfd0d3
  14. added a commit that references this issue on May 5, 2026
    39e5d68
  15. added a commit that references this issue on Jul 1, 2026
    36f79b2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions