RabbitMQ transport - "Format of the initialization string does not conform to specification starting at index 0."

Hi,

Using NserviceBus version 6.4.3 with NserviceBus.RabbitMQ version 4.4.5.

I’m trying to implement RabbitMQ transport.
I’ve started with a very simple POC just to see how it works but it doesn’t…

Here is my implementation (just for testing):
var transport = endpointConfiguration.UseTransport();
transport.ConnectionString(“amqp://…”); //Using AMQP URI

And it throws this exception when trying to start the endpoint:
Endpoint.Start(…) // throws => “Format of the initialization string does not conform to specification starting at index 0.”

The samples and docs here doesn’t say much on mandatory settings for getting started with RabbitMQ.

Hi Liran,

The version of the RabbitMQ transport you’re using does not support AMQP connection strings. You’ll need to use the connection string format that is documented here: Connection settings • RabbitMQ Transport • Particular Docs

I have used it.
This gives out this exception:
“The given key (RabbitMQ.RoutingTopologySupportsDelayedDelivery) was not present in the dictionary”
And I saw in the docs: Routing topology • RabbitMQ Transport • Particular Docs
that: “The recommended routing topology is the conventional routing topology. It was the default topology prior to version 5.”
And since I’m using version 4.4.5 it should be set by default.

Without being able to see all of the code of your project, it’s hard to determine what problem you’re running into now.

However, what I recommend at this point is to take a look at our RabbitMQ sample: Simple RabbitMQ Transport Usage • RabbitMQ Transport Samples • Particular Docs and verify that it works for you.

You should then be able to compare it to your code to see what you’re doing differently.

I am curious about something. If you’re starting a POC, why aren’t you using the latest version of NServiceBus and the RabbitMQ transport?

Look like this line of code passed this exception: “transport.DelayedDelivery().DisableTimeoutManager();”

To answer your question about why not using the latest versions, I’m using these specific version because those are the versions that I’ll need to implement the solution after the POC.

Thank you for kindly answering this question.

Sorry, it’s not really clear yet what you’ve done. Did you run the sample I pointed to? Is it also throwing an exception?

When I run the sample, it works properly, with no exceptions thrown, so I would assume that would be the same for you.

Are you saying that in your code it is the DisableTimeoutManager call that throws the exception? Or are you saying that removing that call in your code stops the exception?

In your code, are you still referencing other NServiceBus packages? Are you creating multiple endpoints?

The goal at this point is to try to figure out what is different about your code compared to the sample.

Getting back to the version discussion:

To answer your question about why not using the latest versions, I’m using these specific version because those are the versions that I’ll need to implement the solution after the POC.

NServiceBus 6.4.3 is no longer supported. The only version of NServiceBus 6 that is still supported is 6.5.10.

NServiceBus 6 itself is about to go out of mainstream support. Support ends for it on 2020-05-29. After that you need to have an extended support contract. See Support Policy • NServiceBus • Particular Docs for more details.

I highly recommend moving to the latest/supported versions as soon as possible.

I meant that this row solved the problem and fixed the exception.
No the sample code works.

Thank you!