sns icon indicating copy to clipboard operation
sns copied to clipboard

Unable to publish to created topic

Open ebmeierj opened this issue 6 years ago • 8 comments

When I try to publish to the topic I just created I'm getting a An error occurred (NotFound) when calling the Publish operation: Topic not found error.

Reproduction case:

Start the sns/sqs servers using docker-compose: cd examples docker-compose up

Publish to the existing test1 topic AWS_DEFAULT_REGION=us-east-1 AWS_ACCESS_KEY_ID=foo AWS_SECRET_ACCESS_KEY=bar aws sns --endpoint-url http://localhost:9911 list-topics

{
    "Topics": [
        {
            "TopicArn": "arn:aws:sns:us-east-1:1465414804035:test1"
        }
    ]
}

AWS_DEFAULT_REGION=us-east-1 AWS_ACCESS_KEY_ID=foo AWS_SECRET_ACCESS_KEY=bar aws sns --endpoint-url http://localhost:9911 publish --topic-arn arn:aws:sns:us-east-1:1465414804035:test1 --message 'TEST'

{
    "MessageId": "bcbded98-610f-4921-930b-286571588609"
}

This is all as expected - however when I create a new topic and publish to it I get AWS_DEFAULT_REGION=us-east-1 AWS_ACCESS_KEY_ID=foo AWS_SECRET_ACCESS_KEY=bar aws sns --endpoint-url http://localhost:9911 create-topic --name new

{
    "TopicArn": "arn:aws:sns:us-east-1:123456789012:new"
}

AWS_DEFAULT_REGION=us-east-1 AWS_ACCESS_KEY_ID=foo AWS_SECRET_ACCESS_KEY=bar aws sns --endpoint-url http://localhost:9911 list-topics

{
    "Topics": [
        {
            "TopicArn": "arn:aws:sns:us-east-1:1465414804035:test1"
        }, 
        {
            "TopicArn": "arn:aws:sns:us-east-1:123456789012:new"
        }
    ]
}

AWS_DEFAULT_REGION=us-east-1 AWS_ACCESS_KEY_ID=foo AWS_SECRET_ACCESS_KEY=bar aws sns --endpoint-url http://localhost:9911 publish --topic-arn arn:aws:sns:us-east-1:123456789012:new --message 'TEST'

An error occurred (NotFound) when calling the Publish operation: Topic not found: arn:aws:sns:us-east-1:123456789012:new

Am I doing something wrong here? Is this happening because I don't have any subscriptions for this topic?

Ubuntu 14.04, docker 17.09.1-ce, compose 1.18.0, aws cli 1.14.38

ebmeierj avatar Feb 26 '18 17:02 ebmeierj

I am having the same problem with some of my topics. I tried out your question "Is this happening because I don't have any subscriptions for this topic" and my issue went away. Unfortunately I have situations in my test environment where I only want to create the topic and ignore the queue.

kevinmic avatar Mar 13 '18 21:03 kevinmic

Very confusing, this behavior should be documented

tomerf-sndbox avatar Jul 23 '18 13:07 tomerf-sndbox

How do you handle the subscription confirmation? after subscribing to the topic and publishing to it, my endpoint doesn't get call...

chensara avatar Aug 01 '18 14:08 chensara

Anyone got success to publish a msg with some workaround ?

walhs avatar Aug 09 '18 22:08 walhs

From this line https://github.com/s12v/sns/blob/master/src/main/scala/me/snov/sns/actor/SubscribeActor.scala#L50

We can see that, to consider the topic as "found", we need an actual subscription. Using a command like this docker exec <CONTAINER_ID> sh -c 'aws sns --endpoint-url http://localhost:9911 subscribe --topic-arn arn:aws:sns:us-east-1:1465414804035:test1 --protocol email --notification-endpoint [email protected]' should make it work.

Minivera avatar Nov 16 '18 18:11 Minivera

This needs to be added to documentation (and to docker-hub documentation as well)

andrey-bobryshev-90poe avatar Jul 08 '20 14:07 andrey-bobryshev-90poe

I was unable to get this to work even using the solution that @Minivera proposed above.

malaney avatar Aug 29 '20 16:08 malaney

Is there a reason the subscriptions are required? I'm in a situation where I need to create the topic and publish to it but I don't have any subscriptions yet, as subscriptions are downstream of my current resources, and from a publishing standpoint I don't actually care what is subscribed.

How do we feel about updating the logic of SubscriberActor.fanOut() to no longer throw an exception when there are no subscriptions for a topic and to simply return Success instead? That looks like a straightforward fix (although it is a change in behavior) and I wouldn't mind putting together a PR for it.

jameskbride avatar Dec 22 '22 18:12 jameskbride