103010: Push recipient endpoint invalid

push_recipient_endpoint_invalid

The push notification was not delivered because the endpoint in the device's push recipient is not one Ably will send to. A web push endpoint has to be an https address that resolves to a publicly reachable host.

What you should do

Have the browser create a new push subscription, and register the device again with the endpoint it returns. An endpoint taken from a live subscription is always in a form Ably can deliver to. Retrying the notification does not help while the registration names the same endpoint.

If the registration was written by hand rather than by a client library, check that the recipient's targetUrl is the subscription's endpoint, base64-encoded, and that the endpoint is the one the browser gave you rather than a server of your own.

Why it happens

Ably delivers a web push notification to the endpoint in the device's push recipient. That endpoint comes from the browser when it creates the subscription, and belongs to the browser vendor's push service, so it is always an https address reachable from the internet.

Ably sends only to an endpoint of that form. It has to be an https url, it has to resolve to a publicly reachable address, and Ably does not follow a redirect away from it. An endpoint that does not meet this is reported against the registration rather than against the notification, because every notification to that device fails in the same way.

What you'll see

The error is reported with code 103010 and HTTP status 400. The message names what Ably would not send to, such as web push target url must be an https url.

A push notification's delivery is not part of the response to the request that triggered it, so this arrives on the [meta]log:push metachannel, which carries push events and errors that are not otherwise returned to clients.

The device registration itself is left as it is, so later notifications to that device report the same error until the registration is replaced.