Can you post an update cycle of MBWebsocket to see which errors occurred?
I will sure try to do that. Do I do as your previous instruction, turn on TRACE and shortly disable the acount and then provide the log? Or are there some other specific thing I need to do?
Same as described before. Just need the output you mentioned.
07:57:33.501 [WARN ] [ercedesme.internal.server.MBWebsocket] - onError Failed to upgrade to websocket: Unexpected HTTP Response Status Code: 412 Precondition Failed
08:13:33.461 [WARN ] [ercedesme.internal.server.MBWebsocket] - onError Failed to upgrade to websocket: Unexpected HTTP Response Status Code: 412 Precondition Failed
08:29:33.546 [WARN ] [ercedesme.internal.server.MBWebsocket] - onError Failed to upgrade to websocket: Unexpected HTTP Response Status Code: 412 Precondition Failed
08:36:14.156 [INFO ] [hab.event.ThingStatusInfoChangedEvent] - Thing 'mercedesme:bev:74d6a0ee1d:W1N9N0CB2SJ134505' changed from OFFLINE (BRIDGE_OFFLINE) to UNINITIALIZED
08:36:14.184 [INFO ] [hab.event.ThingStatusInfoChangedEvent] - Thing 'mercedesme:bev:74d6a0ee1d:W1N9N0CB2SJ134505' changed from UNINITIALIZED to UNINITIALIZED (HANDLER_MISSING_ERROR)
08:36:14.187 [INFO ] [hab.event.ThingStatusInfoChangedEvent] - Thing 'mercedesme:account:74d6a0ee1d' changed from OFFLINE (COMMUNICATION_ERROR): Websocket Exception: Reason: {0} to UNINITIALIZED
08:36:14.202 [INFO ] [hab.event.ThingStatusInfoChangedEvent] - Thing 'mercedesme:account:74d6a0ee1d' changed from UNINITIALIZED to UNINITIALIZED (DISABLED)
08:36:14.205 [INFO ] [hab.event.ThingStatusInfoChangedEvent] - Thing 'mercedesme:bev:74d6a0ee1d:W1N9N0CB2SJ134505' changed from UNINITIALIZED (HANDLER_MISSING_ERROR) to UNINITIALIZED (BRIDGE_UNINITIALIZED)
08:36:24.243 [INFO ] [hab.event.ThingStatusInfoChangedEvent] - Thing 'mercedesme:account:74d6a0ee1d' changed from UNINITIALIZED (DISABLED) to INITIALIZING
08:36:24.250 [INFO ] [hab.event.ThingStatusInfoChangedEvent] - Thing 'mercedesme:account:74d6a0ee1d' changed from INITIALIZING to UNKNOWN
08:36:24.260 [INFO ] [hab.event.ThingStatusInfoChangedEvent] - Thing 'mercedesme:bev:74d6a0ee1d:W1N9N0CB2SJ134505' changed from UNINITIALIZED (BRIDGE_UNINITIALIZED) to INITIALIZING
08:36:24.263 [TRACE] [ercedesme.internal.server.MBWebsocket] - Websocket start wss://websocket.emea-prod.mobilesdk.mercedes-benz.com/v2/ws
08:36:24.269 [INFO ] [hab.event.ThingStatusInfoChangedEvent] - Thing 'mercedesme:bev:74d6a0ee1d:W1N9N0CB2SJ134505' changed from INITIALIZING to UNKNOWN
08:36:24.351 [WARN ] [ercedesme.internal.server.MBWebsocket] - onError Failed to upgrade to websocket: Unexpected HTTP Response Status Code: 412 Precondition Failed
08:36:24.353 [INFO ] [hab.event.ThingStatusInfoChangedEvent] - Thing 'mercedesme:account:74d6a0ee1d' changed from UNKNOWN to OFFLINE (COMMUNICATION_ERROR): Websocket Exception: Reason: {0}
08:36:24.354 [INFO ] [hab.event.ThingStatusInfoChangedEvent] - Thing 'mercedesme:bev:74d6a0ee1d:W1N9N0CB2SJ134505' changed from UNKNOWN to OFFLINE (BRIDGE_OFFLINE)
08:37:24.288 [TRACE] [ercedesme.internal.server.MBWebsocket] - Websocket stop
Thanks, from this Iām pretty sure you still run MercedesMe binding from official release repo.
Please
- Disable Account again
- Uninstall MercedesMe binding (donāt delete things, items or anything else)
- Install the binding from top post or in UI Marketplace
- Enable Account and then letās check traces again
17:04:51.604 [INFO ] [hab.event.ThingStatusInfoChangedEvent] - Thing 'mercedesme:account:74d6a0ee1d' changed from UNINITIALIZED (DISABLED) to UNINITIALIZED (HANDLER_CONFIGURATION_PENDING): {refreshToken=Parametern krƤvs.}
17:06:36.202 [INFO ] [hab.event.ThingStatusInfoChangedEvent] - Thing 'mercedesme:account:74d6a0ee1d' changed from UNINITIALIZED (HANDLER_CONFIGURATION_PENDING): {refreshToken=Parametern krƤvs.} to UNINITIALIZED
17:06:36.209 [INFO ] [hab.event.ThingStatusInfoChangedEvent] - Thing 'mercedesme:account:74d6a0ee1d' changed from UNINITIALIZED to UNINITIALIZED (DISABLED)
17:08:03.158 [INFO ] [hab.event.ThingStatusInfoChangedEvent] - Thing 'mercedesme:account:74d6a0ee1d' changed from UNINITIALIZED (DISABLED) to UNINITIALIZED (HANDLER_CONFIGURATION_PENDING): {refreshToken=Parametern krƤvs.}
āParametern krƤvsā is Swedish for āthe parameter is requiredā
abc did the trick, It is now operational again.
Thank you very much for the support ![]()
I am seeing see a lot of LOGGER:INFO IOException messages as follows..
1. decoding message While parsing a protocol message
2025-03-28 15:55:44.938 [INFO ] [rcedesme.internal.server.MBWebsocket] - IOException decoding message While parsing a protocol message, the input ended unexpectedly in the middle of a field. This could mean either that the input has been truncated or that an embedded message misreported its own length.
2. Protocol message had invalid UTF-8
2025-03-28 16:27:44.983 [INFO ] [rcedesme.internal.server.MBWebsocket] - IOException decoding message Protocol message had invalid UTF-8.
3. Protocol message tag had invalid wire type
2025-03-28 19:39:45.410 [INFO ] [rcedesme.internal.server.MBWebsocket] - IOException decoding message Protocol message tag had invalid wire type.
Are there any changes done which leads to this behavior e.g. update OH or binding version? Or maybe a new attached vehicle?
And how is it about logging frequency? Is it happening each update cycle several times or here and there?
I changed from OH 4.3.2 with the Market-Place version to OH v4.3.4 with the OH Distribution version.
Nope.
It looks rather here and there .. below are the last entries from my log.
2025-04-04 16:03:46.037 [INFO ] [rcedesme.internal.server.MBWebsocket] - IOException decoding message Protocol message had invalid UTF-8.
2025-04-04 16:19:46.763 [INFO ] [rcedesme.internal.server.MBWebsocket] - IOException decoding message Protocol message had invalid UTF-8.
2025-04-04 16:19:50.765 [INFO ] [rcedesme.internal.server.MBWebsocket] - IOException decoding message Protocol message had invalid UTF-8.
2025-04-04 17:23:46.113 [INFO ] [rcedesme.internal.server.MBWebsocket] - IOException decoding message Protocol message had invalid UTF-8.
2025-04-04 17:23:50.112 [INFO ] [rcedesme.internal.server.MBWebsocket] - IOException decoding message Protocol message had invalid UTF-8.
2025-04-04 17:39:46.141 [INFO ] [rcedesme.internal.server.MBWebsocket] - IOException decoding message While parsing a protocol message, the input ended unexpectedly in the middle of a field. This could mean either that the input has been truncated or that an embedded message misreported its own length.
2025-04-04 17:39:50.142 [INFO ] [rcedesme.internal.server.MBWebsocket] - IOException decoding message Protocol message had invalid UTF-8.
2025-04-04 17:39:54.943 [INFO ] [rcedesme.internal.server.MBWebsocket] - IOException decoding message Protocol message had invalid UTF-8.
2025-04-04 17:40:00.704 [INFO ] [rcedesme.internal.server.MBWebsocket] - IOException decoding message Protocol message had invalid UTF-8.
2025-04-04 17:40:07.616 [INFO ] [rcedesme.internal.server.MBWebsocket] - IOException decoding message Protocol message had invalid UTF-8.
I see these messages also now. Some users like @ulrgaer reported these exceptions all the time and their things donāt went online. Thatās why PR 18458 was introduced. But as long as you get VEPUPDATES you receive data for your vehicle.
One possibility is that Mercedes introduced new Messages which cannot be decoded yet. Iāll cross check with HA colleagues if they have the same situation.
2025-04-15 21:24:47.887 [TRACE] [rcedesme.internal.server.MBWebsocket] - WebSocket - Message VEPUPDATES
2025-04-15 21:24:38.858 [TRACE] [rcedesme.internal.server.MBWebsocket] - Websocket start wss://websocket.emea-prod.mobilesdk.mercedes-benz.com/v2/ws WebSocketClient@35dc33ee[httpClient=HttpClient@1b77c46{STARTED},openSessions.size=0]
2025-04-15 21:24:38.860 [TRACE] [rcedesme.internal.server.MBWebsocket] - Websocket max binary size 65536
2025-04-15 21:24:38.982 [TRACE] [rcedesme.internal.server.MBWebsocket] - WebSocket onByteStream
2025-04-15 21:24:38.983 [TRACE] [rcedesme.internal.server.MBWebsocket] - WebSocket - Message APPTWIN_PENDING_COMMAND_REQUEST
2025-04-15 21:24:38.984 [TRACE] [rcedesme.internal.server.MBWebsocket] - WebSocket onByteStream
2025-04-15 21:24:38.985 [TRACE] [rcedesme.internal.server.MBWebsocket] - WebSocket - Message DEBUGMESSAGE
2025-04-15 21:24:38.986 [TRACE] [rcedesme.internal.server.MBWebsocket] - WebSocket onByteStream
2025-04-15 21:24:38.986 [TRACE] [rcedesme.internal.server.MBWebsocket] - WebSocket - Message DEBUGMESSAGE
2025-04-15 21:24:39.078 [TRACE] [rcedesme.internal.server.MBWebsocket] - WebSocket onByteStream
2025-04-15 21:24:39.079 [INFO ] [rcedesme.internal.server.MBWebsocket] - IOException decoding message Protocol message had invalid UTF-8.
2025-04-15 21:24:43.079 [TRACE] [rcedesme.internal.server.MBWebsocket] - WebSocket onByteStream
2025-04-15 21:24:43.080 [INFO ] [rcedesme.internal.server.MBWebsocket] - IOException decoding message Protocol message had invalid UTF-8.
2025-04-15 21:24:47.882 [TRACE] [rcedesme.internal.server.MBWebsocket] - WebSocket onByteStream
2025-04-15 21:24:47.887 [TRACE] [rcedesme.internal.server.MBWebsocket] - WebSocket - Message VEPUPDATES
Do you handle the ānewā service_status_updates messages?
This error occurs transforming the received byte stream into a PushMessage. So the error occurs before message type eval.
I checked the MBSDK repo before but no changes.
I do not see any unknown messages⦠can you save the plain message to a file and send it to me, than I can take a lookā¦
Enabled file writing in code, compiled and deployed it but since then no decoding error occurs. Still a mystery for me why this happens here and there.
Iāll try to write the file in the release version every time so users can report them every time this error happens.
Hi @weymann,
Iām running OH5M2 in Docker with the provided binding. Its working fine but I do receive some warnings in the log:
2025-05-16 08:41:04.572 [WARN ] [rcedesme.internal.server.MBWebsocket] - IOException decoding message Protocol message had invalid UTF-8.
2025-05-16 08:41:08.573 [WARN ] [rcedesme.internal.server.MBWebsocket] - IOException decoding message Protocol message end-group tag did not match expected tag.
2025-05-16 09:13:04.361 [WARN ] [rcedesme.internal.server.MBWebsocket] - IOException decoding message Protocol message tag had invalid wire type.
2025-05-16 09:29:04.364 [WARN ] [rcedesme.internal.server.MBWebsocket] - IOException decoding message While parsing a protocol message, the input ended unexpectedly in the middle of a field. This could mean either that the input has been truncated or that an embedded message misreported its own length.
2025-05-16 09:29:08.369 [WARN ] [rcedesme.internal.server.MBWebsocket] - IOException decoding message Protocol message had invalid UTF-8.
2025-05-16 09:45:04.431 [WARN ] [rcedesme.internal.server.MBWebsocket] - IOException decoding message While parsing a protocol message, the input ended unexpectedly in the middle of a field. This could mean either that the input has been truncated or that an embedded message misreported its own length.
2025-05-16 10:01:04.775 [WARN ] [rcedesme.internal.server.MBWebsocket] - IOException decoding message Protocol message had invalid UTF-8.
Let me know what I can do to help debug this.
Oh no, OH5 too ![]()
Ok, I need to bring file dumps into release binding. For now I put the failed decodings into dumps in temp directory. Thereās a warning message showing the file path with text MercedesMe File dump. If this occurs please send this binary file to me in order to check for errors.
Version 4.3.4 on Marketplace contains this change now, for you OH5 jar is placed here.
Hey @weymann,
I installed the new jar file, thanks for that. Since then no issue occured ![]()
Did something changed in the build environment? Some type cast that is done different now?
Iāll let you know if I see something.
Thanks
I need to change some notions in order to write file dumps but from functionality no changes. Like described in previous post Iām still curious why this happens here and there after a while - thereās no change in decoding messages only the jetty websocket format changes.
Really no clue why this change would resolve an error.
