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