instead of trying to attach to existing command transaction, not maapi_start_trans.

You may also check (devel.log), if save command does not call any of your code and since it is blecked in ConfD loop, it would get stuck (even though for CONFIG it should be OK).

I suggest to verify the example works in your environment and if does, then compare your implmentation for differences. Hopefully it helps (requires confd-6.4.1 and newer for trace.h - otherwise comment out all TRACE, FATAL lines and replace with printf).