Version of orchestrion: 1.8.0
Describe what happened: I was debugging why some SNS PublishBatch calls were hitting error BatchRequestTooLong when the payload size was close but lower than SNS 262144-byte payload limit. I discovered the cause was Orchestrion injection of attribute _datadog into SNS message. The attribute is adding 338 extra bytes to messages, thus exceeding total batch payload limit (262144 bytes).
Describe what you expected: Orchestrion-instrumented application should be able to call SNS PublishBatch with message payload close but lower than SNS 262144-byte payload limit.
Is there a way to disable only this specific attribute injection on Orchestrion? Or even better tell Orchestrion to not inject the attribute if it would exceed the SNS 262144-byte payload limit of the whole SNS batch?
Steps to reproduce the issue:
1 - Write a Go application that calls SNS PublishBatch with message payload "close" to 262144 bytes. In my test, the _datadog attribute adds 338 bytes. So I see the issue when I try to publish payloads bigger than 261806 bytes.
2 - Instrument the application with Orchestrion.
3 - Run the application, the PublishBatch operation will report this error:
BatchRequestTooLong: The length of all the messages put together is more than the limit.
Additional environment details (Version of Go, Operating System, etc.):
Orchestrion: 1.8.0
Go: 1.26.1
OS: Linux on AMD64 on AWS EC2.
This is the log from my investigation.
{"time":"2026-04-01T14:25:12.053717306Z","level":"ERROR","msg":"batchPublish","queue_id":"source2","queue_url":"https://sqs.sa-east-1.amazonaws.com/123412341234/test-source2","topic_arn":"arn:aws:sns:sa-east-1:123412341234:test-sink2","error":"operation error SNS: PublishBatch, https response error StatusCode: 400, RequestID: XXXX, BatchRequestTooLong: The length of all the messages put together is more than the limit.","batch_size":"items=1 grand_total=262482: 1/1:body=262144/attr=338/total_now=262482/total_cached=262144/attr_debug=[attrName=8:\"_datadog\" attrDataType=6:\"Binary\" attrBinaryValue=324:\"{\\\"traceparent\\\":\\\"00-69cd2ac7000000006eccfb1b4d6f1bb4-6eccfb1b4d6f1bb4-01\\\",\\\"tracestate\\\":\\\"dd=s:2;p:6eccfb1b4d6f1bb4;t.dm:-3;t.tid:69cd2ac700000000\\\",\\\"x-datadog-parent-id\\\":\\\"7984032334102862772\\\",\\\"x-datadog-sampling-priority\\\":\\\"2\\\",\\\"x-datadog-tags\\\":\\\"_dd.p.tid=69cd2ac700000000,_dd.p.dm=-3\\\",\\\"x-datadog-trace-id\\\":\\\"7984032334102862772\\\"}\"]","sleeping":1000000000}
Version of orchestrion: 1.8.0
Describe what happened: I was debugging why some SNS PublishBatch calls were hitting error BatchRequestTooLong when the payload size was close but lower than SNS 262144-byte payload limit. I discovered the cause was Orchestrion injection of attribute _datadog into SNS message. The attribute is adding 338 extra bytes to messages, thus exceeding total batch payload limit (262144 bytes).
Describe what you expected: Orchestrion-instrumented application should be able to call SNS PublishBatch with message payload close but lower than SNS 262144-byte payload limit.
Is there a way to disable only this specific attribute injection on Orchestrion? Or even better tell Orchestrion to not inject the attribute if it would exceed the SNS 262144-byte payload limit of the whole SNS batch?
Steps to reproduce the issue:
1 - Write a Go application that calls SNS PublishBatch with message payload "close" to 262144 bytes. In my test, the _datadog attribute adds 338 bytes. So I see the issue when I try to publish payloads bigger than 261806 bytes.
2 - Instrument the application with Orchestrion.
3 - Run the application, the PublishBatch operation will report this error:
Additional environment details (Version of Go, Operating System, etc.):
Orchestrion: 1.8.0
Go: 1.26.1
OS: Linux on AMD64 on AWS EC2.
This is the log from my investigation.