OneSignal-Website-SDK icon indicating copy to clipboard operation
OneSignal-Website-SDK copied to clipboard

[Bug]: Login: Error while identifying/upserting user: identifyUser: malformed request: Subscription not found

Open vladbalmos opened this issue 1 year ago • 2 comments

What happened?

This error appears intermittently while trying to log the user in and add data tags after client subscribes. The user is not logged in and no tags are added, a page refresh is necessary to complete the procedure

Full error message:

LoginManager.js:80 Login: Error while identifying/upserting user: identifyUser: malformed request: {"errors":[{"code":"subscription-0","title":"Subscription not found","meta":{"alias":{"Label":"onesignal_id","ID":"[onesignalid]"}}}]}

The ids in the log have been changed for privacy reasons

What browsers are you seeing the problem on?

Chrome (Chromium)

What operating system are you running?

MacOS, Linux, Windows

Steps to reproduce?

My code:


$(async () => {
    const tags = {"tag": "value"};
    OneSignalDeferred.push(async function (OneSignal) {
        await OneSignal.init({
            appId: "[APP ID]",
            notifyButton: {
                enable: true
            },
            serviceWorkerParam: { scope: "/js/sw/" },
            serviceWorkerPath: "/js/sw/onesignalsdkworker.js"
        });

        if (OneSignal.User.onesignalId &&
            OneSignal.User.PushSubscription.id &&
            OneSignal.User.PushSubscription.id &&
            OneSignal.User.PushSubscription.token &&
            OneSignal.User.PushSubscription.optedIn
        ) {
            OneSignal.User.addTags(tags);
            return;
        }

        OneSignal.User.PushSubscription.addEventListener('change', async (event) => {
            if (!event.current.token) {
                return;
            }
            setTimeout(async () => {
                await OneSignal.login(id_user);
                OneSignal.User.addTags(tags);
            }, 2000); // without the timeout the error appears more often

        });
    });
})

I added a delay between the push subscription change event and the user login & add tags to try to minimize the error occurrences but I still get them from time to time.



### What did you expect to happen?

The user should have been logged in and the data tags should have been added right after confirming the push notification subscription

### Relevant log output

```Shell
LoginManager.js:80 Login: Error while identifying/upserting user: identifyUser: malformed request: {"errors":[{"code":"subscription-0","title":"Subscription not found","meta":{"alias":{"Label":"onesignal_id","ID":"58eea521-83da-4a6a-9428-d90aa2f51f81"}}}]}
(anonymous)	@	LoginManager.js:80
Promise.then (async)		
login	@	OneSignalSDK.page.es6.js?v=160201:1
(anonymous)	@	OneSignal.js:84
login	@	OneSignalSDK.page.es6.js?v=160201:1
(anonymous)	@	1721281600.min.js:1
setTimeout (async)		
(anonymous)	@	1721281600.min.js:1
(anonymous)	@	Emitter.js:113
Promise.then (async)		
emit	@	OneSignalSDK.page.es6.js?v=160201:1
(anonymous)	@	OneSignalEvent.js:49
trigger	@	OneSignalSDK.page.es6.js?v=160201:1
triggerSubscriptionChanged	@	EventHelper.js:155
(anonymous)	@	EventHelper.js:61
Promise.then (async)		
checkAndTriggerSubscriptionChanged	@	OneSignalSDK.page.es6.js?v=160201:1
(anonymous)	@	SubscriptionHelper.js:22
Promise.then (async)		
internalRegisterForPush	@	OneSignalSDK.page.es6.js?v=160201:1
(anonymous)	@	SubscriptionHelper.js:9
registerForPush	@	OneSignalSDK.page.es6.js?v=160201:1
(anonymous)	@	InitHelper.js:74
registerForPushNotifications	@	OneSignalSDK.page.es6.js?v=160201:1
(anonymous)	@	PromptsManager.js:114
internalShowNativePrompt	@	OneSignalSDK.page.es6.js?v=160201:1
(anonymous)	@	PromptsManager.js:86
Promise.then (async)		
internalShowDelayedPrompt	@	OneSignalSDK.page.es6.js?v=160201:1
(anonymous)	@	PromptsManager.js:46
spawnAutoPrompts	@	OneSignalSDK.page.es6.js?v=160201:1
(anonymous)	@	InitHelper.js:68
Promise.then (async)		
sessionInit	@	OneSignalSDK.page.es6.js?v=160201:1
(anonymous)	@	InitHelper.js:28
Promise.then (async)		
internalInit	@	OneSignalSDK.page.es6.js?v=160201:1
(anonymous)	@	OneSignal.js:141
Promise.then (async)		
e	@	OneSignalSDK.page.es6.js?v=160201:1
(anonymous)	@	OneSignal.js:145
_delayedInit	@	OneSignalSDK.page.es6.js?v=160201:1
(anonymous)	@	OneSignal.js:121
Show 93 more frames
OneSignalApiBase.js:53 Fetch failed loading: PATCH "https://onesignal.com/api/v1/apps/[appid]/users/by/onesignal_id/58eea521-83da-4a6a-9428-d90aa2f51f81/identity".
OneSignalApiBase.js:53 
 GET https://onesignal.com/api/v1/apps/[appid]/users/by/onesignal_id/58eea521-83da-4a6a-9428-d90aa2f51f81 404 (Not Found)
CoreModuleDirector.js:54 
Error hydrating user: TypeError: Cannot destructure property 'onesignal_id' of 'e.identity' as it is undefined.
LoginManager.js:95 n: identifyUser: malformed request: {"errors":[{"code":"subscription-0","title":"Subscription not found","meta":{"alias":{"Label":"onesignal_id","ID":"58eea521-83da-4a6a-9428-d90aa2f51f81"}}}]}
    at tn.<anonymous> (https://cdn.onesignal.com/sdks/web/v16/OneSignalSDK.page.es6.js?v=160201:1:219583)
    at Generator.next (<anonymous>)
    at r (https://cdn.onesignal.com/sdks/web/v16/OneSignalSDK.page.es6.js?v=160201:1:262795)
OneSignalApiBase.js:53 Fetch failed loading: GET "https://onesignal.com/api/v1/apps/[appid]/users/by/onesignal_id/58eea521-83da-4a6a-9428-d90aa2f51f81".
OneSignalApiBase.js:53 
 PATCH https://onesignal.com/api/v1/apps/[appid]/subscriptions/a0219da9-b180-47a4-8066-2e4f8b2b6e43 404 (Not Found)
OneSignalApiBase.js:53 Fetch failed loading: PATCH "https://onesignal.com/api/v1/apps/[appid]/subscriptions/a0219da9-b180-47a4-8066-2e4f8b2b6e43".
SessionManager.js:179 Error handling blur: n: Abort _getOneSignalAndSubscriptionIds: no identity
    at Kt.<anonymous> (https://cdn.onesignal.com/sdks/web/v16/OneSignalSDK.page.es6.js?v=160201:1:106896)
    at Generator.next (<anonymous>)
    at r (https://cdn.onesignal.com/sdks/web/v16/OneSignalSDK.page.es6.js?v=160201:1:262795)
OneSignalApiBase.js:53 Fetch finished loading: PATCH "https://onesignal.com/api/v1/apps/[appid]/users/by/onesignal_id/c1bcce3b-b5bc-4481-b337-87e6d9b641a1".

vladbalmos avatar Jul 18 '24 06:07 vladbalmos

Is there any news on that issue ?

Ratatinator97 avatar Aug 26 '24 14:08 Ratatinator97

Is this SDK still maintained?

vladbalmos avatar Sep 16 '24 07:09 vladbalmos

We've refactored our queueing so it should situations better like login then adding add tags. We can reopen this issue if anyone is experiencing issues wither versions v160500 or later.

fadi-george avatar Aug 05 '25 22:08 fadi-george