How to implement the custom webhook rule using Web API 2?

I created a rule very similar to the one you posted (called a different URL instead of the example one you included) and could not reproduce the issue. The hook was called and the custom ID was added to the user metadata.

Have in mind that if the rule calls Auth0 API’s directly or indirectly (in this case it updates user metadata) using the TRY THIS RULE option with the default mock data will lead to unspecified behavior depending on rule logic. In this particular scenario, trying that rule using that option will indeed lead to a The user does not exist. error because the fake data passed to the rule is not associated with a real user.

You can either ensure that both the user and context data passed to the rule as part of the TRY option is valid (existing user) or you may want to execute a real authentication transaction so that the rule is run with actual user data.