Hello Convai Support Team,
I am contacting you regarding several issues that started after migrating our Unreal Engine project from the previous Convai 3.x plugin to the new Convai Unreal SDK 4.0.0-beta.24.
Environment
Unreal Engine: 5.4.4
Convai Unreal Plugin: 4.0.0-beta.24
Convai Client: 0.1.26.1+fdeec72
Platform: Windows
Connection type: realtime WebRTC audio
Character ID: 1452ae46-0db3-11f1-b858-42010a7be02c
Migration and connection issue
After initially updating from the previous Convai plugin, the character appeared to connect, but messages were not processed correctly, chat bubbles did not appear and the character did not speak.
We then performed a completely clean installation:
Removed the previous Convai plugin folders.
Deleted Binaries, Intermediate, Saved and DerivedDataCache.
Reinstalled only Convai 4.0.0-beta.24.
After doing this, the WebRTC connection, microphone input, text responses, TTS and character audio started working.
However, every connection still repeatedly reports:
Client version unknown. Compatibility issues may occur.
The plugin also receives multiple realtime packet types that it reports as unknown:
Unknown packet type ‘error-response’
Unknown packet type ‘llm-function-call-started’
Unknown packet type ‘llm-function-call-in-progress’
Unknown packet type ‘llm-function-call-stopped’
Unknown packet type ‘bot-turn-completed’
Issue with a large number of Actions
Our original project had approximately 66 product and routine Actions.
After adding them to the new Actions array, the character stopped connecting and the log reported:
Failed to convert one or more strings to UTF8
We removed Actions one by one and found that the connection started working again when approximately the 45th populated Action was removed or left empty.
The individual Actions used normal ASCII names such as:
EV_PRODUCTO_PIGMENTBIO_DAILY
EV_PRODUCTO_PIGMENTBIO_H2O
EV_PRODUCTO_PIGMENTBIO_SENSITIVE_AREAS
This appears to be related to the total serialized size or number of Actions rather than underscores or invalid UTF-8 characters.
Could you confirm:
Is there a maximum supported size for ActionConfig?
Is there a recommended maximum number of Actions?
Is the current UTF-8 conversion using a fixed-size metadata buffer?
Is the recommended architecture to replace many individual Actions with a few parameterized Actions?
Parameterized Action configuration
To reduce the number of Actions, we followed the current documentation and created parameterized Actions.
The Unreal Blueprint handler uses:
A Custom Event with the exact Action name.
One Convai Result Action input.
Get Param As String.
The exact parameter name.
Handle Action Completion.
For example:
Action name:
MostrarRutina
Parameter:
Rutina
Type:
String
Choices:
Piel Sensible
Piel Mixta
Piel Deshidratada
Piel Hiperpigmentada
Piel Normal a Seca
The connection log correctly sends:
MostrarRutina {Rutina [Piel Sensible|Piel Mixta|Piel Deshidratada|Piel Hiperpigmentada|Piel Normal a Seca]: string}
First parameter parsing result
In one session, the LLM correctly selected the Action and parameter, and the backend returned:
MostrarRutina{Rutina:Piel Sensible}
However, the Unreal plugin interpreted the entire serialized string as the Action name:
Action: MostrarRutina{Rutina:Piel Sensible} | Params: 0
It then tried to find a Blueprint event with that complete name:
TriggerNamedBlueprintAction: Could not find a valid function
‘MostrarRutina{Rutina:Piel Sensible}’
The expected result was:
Action = MostrarRutina
Parameters[“Rutina”] = “Piel Sensible”
Result after restarting the computer
After restarting the computer and running the same project again, the response format changed.
The backend returned:
{
“actions”: [
{
“name”: “MostrarRutina”
}
]
}
The plugin then correctly identified the Action name:
Action: MostrarRutina | Params: 1
The Blueprint Custom Event was triggered correctly.
However, the parameter value was empty:
Action ‘MostrarRutina’ param ‘Rutina’ value ‘’ not in declared Choices.
Get Param As String(“Rutina”) consequently returned an empty string.
Therefore, the Action handler and Blueprint dispatch now work, but the parameter argument is missing from the backend response.
Minimal Action test without Choices
To determine whether this was caused by Choices, we created a minimal English Action:
Action:
TestAction
Parameter:
option
Type:
String
Choices:
None
The generated ActionConfig is:
TestAction {option: string}
The description explicitly says that the parameter is mandatory and must return A or B.
When the user says:
execute option A
the character responds verbally:
Executing option A.
The log then shows:
llm-function-call-started
llm-function-call-in-progress
llm-function-call-stopped
However, no action-response is received, so the Blueprint handler is never triggered.
This shows that the issue is not limited to parameter Choices.
Current findings
At this point, we have reproduced three different results using the same plugin version:
Result 1
MostrarRutina{Rutina:Piel Sensible}
The parameter is included in the serialized name, but the plugin does not parse it.
Result 2
Action: MostrarRutina | Params: 1
Rutina = “”
The Action is dispatched correctly, but the parameter argument is missing.
Result 3
llm-function-call-started
llm-function-call-in-progress
llm-function-call-stopped
The function call starts, but no action-response is returned at all.
Because these results vary between sessions without changing the Blueprint implementation, this appears to be a compatibility or protocol issue between the current realtime backend and the Convai client included in beta.24.
Questions
Could you please confirm:
Is Convai Client 0.1.26.1+fdeec72 currently supported by the realtime backend?
Why does the backend repeatedly report Client version unknown?
Is there a known issue with parameterized Action arguments being omitted?
Is there a known issue parsing the format:
ActionName{ParameterName:Value}
Should the backend return Action parameters in a separate field rather than inside name?
Is there a newer plugin build, client library or hotfix that we should use?
Is Unreal Engine 5.4.4 fully supported by beta.24?
What is the recommended workaround for a production project that needs approximately 66 products and five routines?
We can provide:
Complete Output Logs.
Screenshots of the Action definitions.
Blueprint screenshots.
A minimal reproduction using only TestAction.
The original project configuration.
Thank you. We would appreciate confirmation of whether this is a known backend/client compatibility issue and which plugin version or configuration should be used for a stable implementation.