This is due to a slight change in the API, where a void ptr is passed as the last argument, to make it possible to pass arbitrary data to (custom) kernels. (Ref: Add void* to tabulate_tensor kernel by sclaus2 · Pull Request #753 · FEniCS/ffcx · GitHub)
By changing
to
self.kernel(ffi_fb(A_local), ffi_fb(coeffs), ffi_fb(self.consts), ffi_fb(geometry),
ffi_fb(facet_index), ffi_fb(facet_perm), self.ffi.NULL,)
the code runs.