On 05/05/2026 10:25, Maarten van Casteren wrote:
Hi,

When a unit's RuntimeDirectory= contains an escape sequence (for example because the unit is templated and the instance name is an escaped file path), starting the service results in the following error:

systemd-executor[28474]: Failed to deserialize: Invalid argument

Related issue: https://github.com/systemd/systemd/issues/41853

Indeed, the problem has nothing to do with specifiers, as suggested in the related issue, but everything with escape characters (i.e. backslash, i.e. '\'). Because serialization builds space-separated groups of colon-separated fields, deserialization ends up unescaping twice. Hence, any literal "\ ", "\:", or "\\" in the path of a context directory will be inadvertently unescaped and any other backslash will cause a deserialization error.

A fix is pending: https://github.com/systemd/systemd/pull/42686

Kind regards,
- Jouke

Reply via email to