Престала работать подписка на PUSH уведомления, в баг репорте на 2 моих обращения уже больше месяца не отвечают!
На данный момент версия браузера: 122.0.5643.142
Замечу сразу, в других браузерах Microsoft Edge, Chrome все работает отлично!
При создании подписки (subscription ) вылетает AbortError: Registration failed - push service error
https://cleverpush.com/en/test-notifications/

async function initPush() {
if (!('serviceWorker' in navigator)) {
console.warn('ServiceWorker не поддерживается');
return;
}
try {
const reg = await navigator.serviceWorker.register('/mypush-service-worker.js');
await navigator.serviceWorker.ready;
console.log('✅ SW зарегистрирован', reg);
const btn = document.createElement('button');
btn.textContent = 'Разрешить уведомления';
btn.style = 'bottom:20px;right:20px;padding:10px;background:red;color:white;border:none;border-radius:8px;';
document.body.appendChild(btn);
btn.addEventListener('click', async () => {
const perm = await Notification.requestPermission();
if (perm !== 'granted') {
alert('Разрешите уведомления!');
return;
}
try {
const vapidKey = 'BGBrZo_OfZEMS3msxlJkxxRAk0NN7inbBCP6_dY8u1gN8kLNRPvQOf4Lt40lMTmaNNrVL8T1ZIb8lp5YBh4oiJc';
const keyArray = urlBase64ToUint8Array(vapidKey);
const subscription = await reg.pushManager.subscribe({
userVisibleOnly: true,
applicationServerKey: keyArray,
});
console.log('✅ Подписка успешна', subscription);
await sendSubscriptionToServer(subscription);
alert('Уведомления успешно активированы!');
btn.remove();
} catch (err) {
console.error('❌ Ошибка подписки', err.name, err.message);
if (err.name === 'AbortError') {
alert('Ошибка Push-сервиса. Проверьте VAPID-ключ или HTTPS.');
}
}
});
} catch (err) {
console.error('Ошибка регистрации Service Worker:', err);
}
}
function urlBase64ToUint8Array(base64String) {
const padding = '='.repeat((4 - base64String.length % 4) % 4);
const base64 = (base64String + padding).replace(/-/g, '+').replace(/_/g, '/');
const rawData = atob(base64);
return Uint8Array.from([...rawData].map(ch => ch.charCodeAt(0)));
}
async function sendSubscriptionToServer(subscription) {
const res = await fetch('/save_subscription.php', {
method: 'POST',
body: JSON.stringify(subscription),
headers: { 'Content-Type': 'application/json' },
});
if (!res.ok) throw new Error('Не удалось сохранить подписку');
}
initPush();