You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Please select any browsers that you are experiencing problems with:
Chrome
Firefox
Problem
I'm using Node.js and MongoDB.
I'm getting the following error when I use web-push on my DigitalOcean server:
When I send notification to a Firefox Client, I get the following error:
WebPushError: Received unexpected response code at IncomingMessage.<anonymous> (/home/sahilnare78/apps/Hola_Peeps_New_Design/node_modules/web-push/src/web-push-lib.js:347:20) at IncomingMessage.emit (events.js:326:22) at IncomingMessage.EventEmitter.emit (domain.js:483:12) at endReadableNT (_stream_readable.js:1241:12) at processTicksAndRejections (internal/process/task_queues.js:84:21) { statusCode: 401, headers: { 'access-control-allow-headers': 'content-encoding,encryption,crypto-key,ttl,encryption-key,content-type,authorization', 'access-control-allow-methods': 'POST', 'access-control-allow-origin': '*', 'access-control-expose-headers': 'location,www-authenticate', 'content-type': 'application/json', date: 'Sat, 24 Jul 2021 14:55:33 GMT', server: 'nginx', 'strict-transport-security': 'max-age=31536000;includeSubDomains', 'content-length': '213', connection: 'Close' }, body: '{"code": 401, "errno": 109, "error": "Unauthorized", "more_info": "http://autopush.readthedocs.io/en/latest/http.html#error-codes", "message": "Request did not validate missing authorization header: Key mismatch"}',
The important part is this:
body: '{"code": 401, "errno": 109, "error": "Unauthorized", "more_info": "http://autopush.readthedocs.io/en/latest/http.html#error-codes", "message": "Request did not validate missing authorization header: Key mismatch"}',
When I send notification to a Chrome Client, I get the following error:
WebPushError: Received unexpected response code at IncomingMessage.<anonymous> (/home/sahilnare78/apps/Hola_Peeps_New_Design/node_modules/web-push/src/web-push-lib.js:347:20) at IncomingMessage.emit (events.js:326:22) at IncomingMessage.EventEmitter.emit (domain.js:483:12) at endReadableNT (_stream_readable.js:1241:12) at processTicksAndRejections (internal/process/task_queues.js:84:21) { statusCode: 403, headers: { 'content-type': 'text/plain; charset=utf-8', 'x-content-type-options': 'nosniff', 'x-frame-options': 'SAMEORIGIN', 'x-xss-protection': '0', date: 'Sat, 24 Jul 2021 14:55:32 GMT', 'content-length': '194', 'alt-svc': 'h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-T051=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"', connection: 'close' }, body: 'the key in the authorization header does not correspond to the sender ID used to subscribe this user. Please ensure you are using the correct sender ID and server Key from the Firebase console.\n',
Expected
When I tested my code on my local machine, it was working properly. But it doesn't work on my remote server.
Setup
Operating System:
Node Version: <12.20.0>
web-push Version: <3.4.5>
Problem
I'm using Node.js and MongoDB.
I'm getting the following error when I use web-push on my DigitalOcean server:
When I send notification to a Firefox Client, I get the following error:
WebPushError: Received unexpected response code
at IncomingMessage.<anonymous> (/home/sahilnare78/apps/Hola_Peeps_New_Design/node_modules/web-push/src/web-push-lib.js:347:20)
at IncomingMessage.emit (events.js:326:22)
at IncomingMessage.EventEmitter.emit (domain.js:483:12)
at endReadableNT (_stream_readable.js:1241:12)
at processTicksAndRejections (internal/process/task_queues.js:84:21) {
statusCode: 401,
headers: {
'access-control-allow-headers': 'content-encoding,encryption,crypto-key,ttl,encryption-key,content-type,authorization',
'access-control-allow-methods': 'POST',
'access-control-allow-origin': '*',
'access-control-expose-headers': 'location,www-authenticate',
'content-type': 'application/json',
date: 'Sat, 24 Jul 2021 14:55:33 GMT',
server: 'nginx',
'strict-transport-security': 'max-age=31536000;includeSubDomains',
'content-length': '213',
connection: 'Close'
},
body: '{"code": 401, "errno": 109, "error": "Unauthorized", "more_info": "http://autopush.readthedocs.io/en/latest/http.html#error-codes", "message": "Request did not validate missing authorization header: Key mismatch"}',
The important part is this:
body: '{"code": 401, "errno": 109, "error": "Unauthorized", "more_info": "http://autopush.readthedocs.io/en/latest/http.html#error-codes", "message": "Request did not validate missing authorization header: Key mismatch"}',
When I send notification to a Chrome Client, I get the following error:
WebPushError: Received unexpected response code
at IncomingMessage.<anonymous> (/home/sahilnare78/apps/Hola_Peeps_New_Design/node_modules/web-push/src/web-push-lib.js:347:20)
at IncomingMessage.emit (events.js:326:22)
at IncomingMessage.EventEmitter.emit (domain.js:483:12)
at endReadableNT (_stream_readable.js:1241:12)
at processTicksAndRejections (internal/process/task_queues.js:84:21) {
statusCode: 403,
headers: {
'content-type': 'text/plain; charset=utf-8',
'x-content-type-options': 'nosniff',
'x-frame-options': 'SAMEORIGIN',
'x-xss-protection': '0',
date: 'Sat, 24 Jul 2021 14:55:32 GMT',
'content-length': '194',
'alt-svc': 'h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-T051=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"',
connection: 'close'
},
body: 'the key in the authorization header does not correspond to the sender ID used to subscribe this user. Please ensure you are using the correct sender ID and server Key from the Firebase console.\n',
Expected
When I tested my code on my local machine, it was working properly. But it doesn't work on my remote server.
Features Used
Example / Reproduce Case
Here's the code that I used:
serviceworker.js:
self.addEventListener('push', function(event) {
const payload = event.data ? event.data.json() : 'no payload';
event.waitUntil(
self.registration.showNotification(payload.title, {
body: payload.body,
icon: payload.icon
})
)
});
server.js:
webPush.sendNotification({
endpoint: subscription.endpoint,
keys: {
auth: subscription.auth,
p256dh: subscription.p256dh
},
expirationTime: 12*60*60
}, payload, options)
.then(function() {
res.json({registered: true});
}).catch((err) => console.error(err));
index.html (client side script):
navigator.serviceWorker.ready
.then(function(registration) {
return registration.pushManager.getSubscription()
.then(async function(subscription) {
if (subscription) {
return subscription;
}
const response = await fetch('/api/notification/vapidPublicKey');
const vapidPublicKey = await response.text();
const convertedVapidKey = urlBase64ToUint8Array(vapidPublicKey);
return registration.pushManager.subscribe({
userVisibleOnly: true,
applicationServerKey: convertedVapidKey
});
});
}).then(function(subscription) {
fetch('/api/notification/register', {
method: 'post',
headers: {
'Content-type': 'application/json'
},
body: JSON.stringify({
subscription: subscription
}),
});
});
The text was updated successfully, but these errors were encountered: