Publish to Hardware Catalog redirects to Record Not Found due to the use of "gr" in global scope in the publish_to_product_catalog UI Page Processing Script.
If a custom script that also uses 'gr', such as a business rule, is also involved in the transaction, then the catalog item gr is clobbered by that instead, meaning we use the wrong sys_id or 'undefined' in the URL.
Steps to Reproduce
This problem is currently under review. You can contact ServiceNow Technical Support or subscribe to this Known Error article by clicking the Subscribe button at the top right of this form to be notified when more information will become available.
If the other script using 'gr' cannot be identified, then it is possible to workaround this by renaming the "gr" variable in the publish_to_product_catalog UI Page Processing Script to e.g. "gr2".
More details on the general cause is available in:
KB0713029 Best Practice: Why using 'gr' as a GlideRecord variable name in custom scripts is always a bad idea
Related Problem: PRB1351676