Connector Exception 1: Identifier Set on a Thing
The eMessage Connector cannot find an asset if an identifier has been set on its corresponding Thing in ThingWorx. If a message arrives from the ThingWorx Platform with an identifier, the message is rejected. The symptoms of this issue follow:
The lastConnected property for the Thing is not updating. Refer to Observation 1: eMessage Connector does not show up on the Monitoring > Connection Servers page.
An asset that had been communicating for a long time no longer appears to be communicating with ThingWorx Platform. Refer to Observation 2: The lastConnection property of the Thing does not update.
Here is a scenario that will result in this exception:
1. Configure an Axeda agent to send file uploads (e.g., File Watcher) and several data item messages to eMessage Connector.
2. Set the identifier property on a Thing to invalidIdentifier. ThingWorx Platform will now use this value instead of the model and serial number when sending an egress message for the asset (Thing) to eMessage Connector.
3. Start eMessage Connector.
4. Start the Axeda agent. The agent sends a file upload message and the data item messages to eMessage Connector.
The result is that any egress message from the ThingWorx Platform is not processed. The Connector tells the agent not to upload the file. The data item messages are processed. Errors and warnings are logged.
EXAMPLE OF ERRORS AND WARNINGS LOGGED FOR EXCEPTION 1. IDENTITIFER SET ON A THING

08:14:29.850 [vert.x-worker-thread-0] WARN c.t.protocol.emessage.EmessageCodec -
Unable to build egress response since device cannot be found:
egressEntityName=Weather1 target=registration characteristic=Services functionType=INVOKE
... [NettyClient-NIO-1] ERROR c.t.s.i.t.netty.NettyChannelHandler -
WebSocket error: Unexpected egress message for entity: entityName=Weather1, closing connection!
java.lang.IllegalArgumentException: Unexpected egress message for entity: entityName=Weather1
...
[Thread-10] ERROR c.t.p.e.converters.EgressConverter - Timeout waiting for
expected egress messages to arrive for ThingName=*invalidIdentifier
Was this helpful?