Lxc-start throws error in systemd

ExecStart=/usr/bin/lxc-start -n sample -f /var/lib/lxc/app/config from a service file gives error
xc-start[15069]: /usr/bin/lxc-start: symbol lookup error: /usr/bin/lxc-start: undefined symbol: lxc_caps_init

But lxc-start -n sample -f /var/lib/lxc/app/config works file when logged in as unprivilaged user.
Is there any depencies or mandatory actions to be performed when running unprivilaged containers as systemd services

Additional information,
ldd /usr/bin/lxc-start
linux-vdso.so.1 (0x00007ffdd339d000)
liblxc.so.1 => /usr/local/lib/liblxc.so.1 (0x00007fca57278000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fca57059000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fca56c68000)
libseccomp.so.2 => /lib/x86_64-linux-gnu/libseccomp.so.2 (0x00007fca56a48000)
libutil.so.1 => /lib/x86_64-linux-gnu/libutil.so.1 (0x00007fca56845000)
/lib64/ld-linux-x86-64.so.2 (0x00007fca57726000)

This suggests that you have both packaged and hand built versions of LXC on the system.

In this case, you appear to be running the packaged binary against the hand built library. This isn’t supported. Make sure you either have only the packaged version or only a hand built version.

Thank you for pointing out.
How did you identify it. I am not able to find out the difference between then in ldd linking.
how can i uninstall packaged version and keep handbuilt version

apt-get remove --purge liblxc1 should do it.

Your post had both /usr/bin/lxc-start and ldd showing /usr/local/lib/..., if it was all packaged, it would all be /usr/... if it was all hand built, it’d all be /usr/local/..., a mix of both indicates a problem.