Debug output should help make it more clear, but check if your init
script works properly. On RedHat, the provider assumes the init script
will support a status command. It will try to do a status check to see
if the service is running before starting it. If the status command
isn’t supported or implemented wrong (doesn’t set expected exit
status), chef may get the impression the service is running when it
isn’t and therefore not try to start it.

Debug output should help make it more clear, but check if your init
script works properly. On RedHat, the provider assumes the init script
will support a status command. It will try to do a status check to see
if the service is running before starting it. If the status command
isn’t supported or implemented wrong (doesn’t set expected exit
status), chef may get the impression the service is running when it
isn’t and therefore not try to start it.