Why is my custom post type not being activated on plug-in activation?

That’s not how register_activation_hook works.

register_activation_hook is called only once, when the plugin is activated. CPT’s however need to be registered on every single request, not just when the plugin is activated.

This is because WP doesn’t store a list of CPT’s in the database, it’s generated at runtime by PHP code.

So instead, register your CPT’s on the init hook. The same for custom taxonomies.

As for the activation hook, use that to create custom database tables if needed, but the activation hook isn’t super reliable to begin with. Most plugins don’t use it.

404 Not Found

Not Found

The requested URL was not found on this server.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.