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
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
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 everyPublishcall — no HTTP POST is ever made:Additional context
confirm-subscriptionworks correctly —PendingConfirmationflips tofalsein the persisted JSON.curlfrom inside the Floci container to subscriber endpoints returns HTTP responses.Environment
floci/floci:1.5.15-compatPERSISTENCE=1,SERVICES=sns,s3,...