Issue

Flash Media Server returns a NetStream.Publish.BadName message to a publisher. The error occurs when there is a disruption in the connection to the server and the publisher tries to republish the live stream.

Solution

Configure the application's PublishTimeout value to allow Flash Media Server to clear the first publishing connection and allow the subsequent publishing connection to take over the live stream. The PublishTimeout setting specifies the time (in milliseconds) the server waits for a response from a publisher when another client tries to publish to the stream. If the first publisher fails to respond within the time specified in this tag, the server allows the second publisher to take over the live stream. The default value is 2000 (or 2 seconds), follow these steps to change it:

  1. Edit the local or global Application.xml. The default global location is in $fms_root\conf\_defaultRoot_\_defaultVHost_..
  2. Change numerical value between the Application > StreamManager >  Live > PublishTimeout  tags.
  3. Save the file and restart the application.

Notes:

  • Disable this tag by setting the value to -1.
  • For streams experiencing latency, consider increasing the PublishTimeout value.
  • If your publishing client has a configurable connection timeout, set its value greater than the PublishTimeout value.

Additional information

Flash Media Server only allows one client publisher of a live stream to each application instance. It rejects any client that tries to publish an existing live stream and return a NetStream.Publish.BadName status to that client. Due to socket API limitations, it's possible that the server doesn't get notified that the original publisher was disconnected before it tries to republish the stream. The server honors the connection of the original stream publisher and blocks other publishing attempts for the same stream.