How to fix parameterized action parsing issues

What do you need help with?

Question

Installation method

Not sure

Issue area

Other

Impact

Blocker - I cannot continue

Unreal Engine version

5.4.4

Convai Unreal Engine Plugin version

FAB

Project setup

Blueprint

Target platform

Windows build

Where does it happen?

Both sample and custom project

Short summary

events are not always triggered by Convai

What happened?

We have several actions in the character blueprint, this actions have the respective events with same name and the functionality. When the character talks about the product in the knowledge bank sometimes it activates the event and sometimes it doesn’t and also it depends on the machine we test, sometimes it works and sometimes it doesn’t. When the character is asked about the action itself it works, but contextually when she talks about a product it does not fire the action nor the event in our code.

I checked the relevant documentation, resources, and similar forum posts before posting.

on

I confirm that I did not include API keys, tokens, passwords, secrets, private character data, private conversation logs, or customer data.

on

This may be related to the way the Actions are named or described.

Please make sure the Action names and descriptions are clear, specific, and strongly aligned with when the action should be triggered. If the Action is expected to fire contextually while the character is talking about a product, the Action description should clearly explain that behavior.

You can also reinforce the expected behavior in the character’s backstory/instructions and add an example scenario showing when the Action should be triggered. This can help the model understand when to call the Action more reliably. Additionally, you can try using more capable LLMs.

Can you give us an example ple

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.

Could you please share the logs and some example Actions so we can review them?

Please download the logs and the examples in this dropbox link : Dropbox

did you have a chance to download the logs ??

We are currently reviewing the issue and will get back to you once we have an update.

Hi Convai Support Team,

I hope you’re doing well.

I wanted to check in and see if there are any updates or progress on this topic.

Hi Ventas,

Thank you for sending the logs and screenshots.

The problem where the character stops connecting when many actions are enabled, or when action names and descriptions are very long, is a known issue. We are working on it, and the fix is planned for 4.0.0-beta.26 next week.

There is no single recommended action limit because every action contains a different amount of text. Until the update is available, please enable only the actions you need. This is a temporary workaround and can also help the character focus on the right actions.

We tested the product and routine examples from your logs separately using your character ID. These are the versions we used:

Product

  • Name: Recomendar producto
  • Parameter: Producto
  • Description: Ejecuta siempre esta acción cuando el usuario pida una recomendación o cuando elijas un producto concreto. La llamada muestra ese producto en pantalla y es obligatoria aunque también respondas verbalmente. Incluye el nombre exacto. Ejemplo: Recomendar producto Sensibio.
  • Parameter description: El nombre exacto del producto que se debe recomendar.

Routine

  • Name: Mostrar rutina
  • Parameter: Rutina
  • Description: Ejecuta siempre esta acción cuando el usuario pida una rutina o cuando elijas una rutina concreta. La llamada muestra esa rutina en pantalla y es obligatoria aunque también respondas verbalmente. Incluye el nombre exacto. Ejemplo: Mostrar rutina Piel Sensible.
  • Parameter description: El nombre exacto de la rutina que se debe mostrar.

The completed actions are easy to read: Recomendar producto Sensibio and Mostrar rutina Piel Sensible.

The routine action worked correctly in our latest test. The clearer wording helps explain the intended action, but the upcoming beta.26 update next week is still needed for better consistency.

Spanish is supported. Keeping the action name, parameter, and description in the same language simply makes the setup easier to read.

You can ignore the Client version unknown warning. We have also made general improvements to action handling for the upcoming update.

For more info and best practices on actions naming you can check this document Writing clear action names and descriptions | Convai Documentation