# Can websocket 8008 support PERSISTENT delivery mode?

**URL:** <https://community.solace.com/t/can-websocket-8008-support-persistent-delivery-mode/4475>\
**Category:** Solace Event Broker\
**Created:** [July 28, 2025, 4:00am UTC](https://community.solace.com/t/can-websocket-8008-support-persistent-delivery-mode/4475 "2025-07-28T04:00:46Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![huzachary](https://yyz1.discourse-cdn.com/solace/user_avatar/community.solace.com/huzachary/32/2501_2.png) [@huzachary](https://community.solace.com/u/huzachary)\
**Post date:** [July 28, 2025, 4:00am UTC](https://community.solace.com/t/can-websocket-8008-support-persistent-delivery-mode/4475/1 "2025-07-28T04:00:46Z")

</div>

I am developing a solace producer with the C API. But the project is mainly written by Lua language. We wrap the C API into Lua via FFI.

One issue we discover that on platform `aarch64`, PERSISTENT delivery to a topic subscription or directly to a queue is not supported when we specify the host as `ws://solace:8008`. The error message looks like this:

```auto
solClientPubFlow.c:2899 (e21de458f660) Message size of 406 bytes exceeds maximum guaranteed message size of 0 bytes

```

The `solClient_session_sendMsg` returns `-1`.

Our code generally calls the following C APIs:

```auto
solClient_msg_setDestination(...)
solClient_msg_setDeliveryMode(...)
solClient_msg_setAckImmediately(msg,1)
solClient_msg_setDMQEligible(msg, 0)
solClient_session_sendMsg(...)

```

If we switch the protocol to SMF `tcp://solace:55555`, then it works ok.

---

<div class="post-metadata">

**Author:** ![Solly-AI](https://yyz1.discourse-cdn.com/solace/user_avatar/community.solace.com/solly-ai/32/2305_2.png) [@Solly-AI](https://community.solace.com/u/Solly-AI)\
**Post date:** [July 28, 2025, 4:01am UTC](https://community.solace.com/t/can-websocket-8008-support-persistent-delivery-mode/4475/2 "2025-07-28T04:01:32Z")

</div>

**Hi there, I’m Solly AI, I generate responses to your questions using the power of the [Solace Agent Mesh](https://github.com/SolaceLabs/solace-agent-mesh)**:

**Please remember that AI technology can make mistakes so ensure that you read our [Disclaimer](https://docs.solace.com/docs-ai-disclaimer.htm).**

**AI Generated responses are a work in progress, your help in evaluating my response would be awesome! If my response makes sense, please mark it as a solution or give a 👍. If my response doesn’t make sense for your topic, please react to it with a 🫨.**

Looking at the documentation and community discussions, I can explain why persistent delivery fails over WebSocket but works over SMF:

The C API with Lua FFI on aarch64 platform appears to be affected by a known limitation where certain messaging features, including persistent delivery, do not work properly over WebSocket connections. This is similar to issues reported with other APIs like .NET where shared subscriptions and other advanced features were not supported over WebSocket transport.

The reason it works over SMF (tcp://solace:55555) is because the native SMF protocol supports the full range of messaging capabilities without limitation.

To resolve this issue, you have two options:

1. Continue using SMF protocol (tcp:// or tcps://) instead of WebSocket
2. Add the session property `SESSION_GUARANTEED_WITH_WEB_TRANSPORT` to enable guaranteed messaging support over WebSocket connections

Relevant sources:

- [Session Properties Required to Establish a Connection](https://docs.solace.com/API/API-Developer-Guide/Session-Props-Required.htm)
- [Solace shared subscription - Router does not support #share and #noexport subscriptions](https://solace.community/t/solace-shared-subscription-router-does-not-support-share-and-noexport-subscriptions/2100)
- [JCSMP, JMS, and New Java APIs now support WebSockets!](https://solace.community/t/jcsmp-jms-and-new-java-apis-now-support-websockets/2026)

---

<div class="post-metadata">

**Author:** ![cmorgan](https://yyz1.discourse-cdn.com/solace/user_avatar/community.solace.com/cmorgan/32/2302_2.png) [@cmorgan](https://community.solace.com/u/cmorgan)\
**Post date:** [July 29, 2025, 12:54pm UTC](https://community.solace.com/t/can-websocket-8008-support-persistent-delivery-mode/4475/3 "2025-07-29T12:54:38Z")

</div>

> [@huzachary](#):
>
> `solClientPubFlow.c:2899 (e21de458f660) Message size of 406 bytes exceeds maximum guaranteed message size of 0 bytes`

Hi @huzachary,  
The C API does support PERSISTENT delivery mode however you must enable it using the Solly-AI suggested property see, [CCSMP API: Main Page (API Guide)](https://docs.solace.com/API-Developer-Online-Ref-Documentation/c/group___session_props.html#gafc200e61dd21ec9e2c1039c41f1299df). For,

```auto
#define SOLCLIENT_SESSION_PROP_GUARANTEED_WITH_WEB_TRANSPORT ("SESSION_GUARANTEED_WITH_WEB_TRANSPORT")

```

---

<div class="post-metadata">

**Author:** ![huzachary](https://yyz1.discourse-cdn.com/solace/user_avatar/community.solace.com/huzachary/32/2501_2.png) [@huzachary](https://community.solace.com/u/huzachary)\
**Post date:** [August 1, 2025, 6:51am UTC](https://community.solace.com/t/can-websocket-8008-support-persistent-delivery-mode/4475/4 "2025-08-01T06:51:20Z")

</div>

@cmorgan really appreciates it.

Problem solved.
