Skip to content

[BUG] SNS HTTP/HTTPS endpoint delivery not implemented — silently skips all HTTP subscribers on Publish #841

@alexhayhoetebex

Description

@alexhayhoetebex

Summary

SNS HTTP endpoint delivery is silently skipped when publishing to a topic that has confirmed HTTP subscriptions. Confirmed on 1.5.15 (and nightly-05132026-compat based on commit history review).

Steps to reproduce

# 1. Subscribe an HTTP endpoint
aws --endpoint-url=http://localhost:4566 --no-sign-request \
  sns subscribe \
  --topic-arn arn:aws:sns:us-east-1:000000000000:my-topic \
  --protocol http \
  --notification-endpoint http://my-service.local/sns/handle

# 2. Confirm the subscription (token from /app/data/sns-subscriptions.json inside the container)
aws --endpoint-url=http://localhost:4566 --no-sign-request \
  sns confirm-subscription \
  --topic-arn arn:aws:sns:us-east-1:000000000000:my-topic \
  --token <ConfirmationToken>

# 3. Publish a message
aws --endpoint-url=http://localhost:4566 --no-sign-request \
  sns publish \
  --topic-arn arn:aws:sns:us-east-1:000000000000:my-topic \
  --message "hello"

Expected behaviour

Floci performs an HTTP POST to each confirmed HTTP subscriber with a standard SNS notification JSON body (Type, MessageId, TopicArn, Message, Timestamp, SignatureVersion, Signature, SigningCertURL, UnsubscribeURL).

Actual behaviour

With QUARKUS_LOG_LEVEL=DEBUG, the following is logged for every confirmed HTTP subscriber on every Publish call — no HTTP POST is ever made:

DEBUG [io.github.hectorvent.floci.services.sns.SnsService] Protocol http delivery not implemented, skipping: http://my-service.local/sns/handle

Additional context

  • Subscription confirmation via confirm-subscription works correctly — PendingConfirmation flips to false in the persisted JSON.
  • SNS → SQS delivery works fine (not skipped in logs).
  • Docker Hub lists "SQS / Lambda / HTTP delivery" as supported subscription types under the SNS service entry.
  • Migrating from LocalStack Community: LocalStack delivered to HTTP endpoints; this gap breaks existing local dev stacks that rely on SNS HTTP fan-out across services.
  • Connectivity is not the issue — curl from inside the Floci container to subscriber endpoints returns HTTP responses.

Environment

  • Floci image: floci/floci:1.5.15-compat
  • PERSISTENCE=1, SERVICES=sns,s3,...
  • Subscriber endpoints are other Docker containers on the same Docker bridge network

Metadata

Metadata

Assignees

Labels

bugSomething isn't workinghelp wantedExtra attention is neededsns

Type

No fields configured for Bug.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions