Create an SNS subscription to an SQS queue and set the RawMessageDelivery attribute to true via the AWS console, CLI, or SDK
With raw delivery disabled (default), SNS wraps the original message in a JSON envelope containing metadata fields such as Type, MessageId, TopicArn, Subject, Timestamp, and SignatureVersion
With raw delivery enabled, SQS receives only the original message body string with no SNS envelope; message attributes are passed through as SQS message attributes
Verify the change: aws sns get-subscription-attributes --subscription-arn <arn> and confirm RawMessageDelivery is true
Adjust consumers: raw delivery consumers parse the message body directly rather than unwrapping an SNS JSON envelope
Known gotchas
Subscription filter policies still apply with raw delivery enabled; the filter evaluates message attributes or body before delivery, raw delivery only affects the format of what reaches SQS
Enabling raw delivery on an existing subscription immediately changes the format of new messages; any consumer still parsing the SNS envelope will break — coordinate consumer and subscription updates together
SNS delivery-status logging (success/failure) is not affected by raw delivery mode; enable it separately via the SNS topic's DeliveryStatusLogging attributes
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp