Page 1 of 1
push notifications in VL Web
Posted: Tue Nov 25, 2025 6:49 am
by stevelee67
I've been trying to get these to work on the web with no luck.
I've gotten the VapidKey to work on the server side (note: documentation has a minor typo, where they refer to the primitive as PRIM_CAP instead of PRIM_CAP
I under
23.3 Developing Push Notifications / PRIM_CAP.PrivateKey.VapidPublicKey
but when i try to use the push manager:
DEFINE_COM CLASS(#PRIM_WEB.PushManager) NAME(#pushManager)
and query, subscribe, or unsubscribe, i invariably get
- feature status = unsupported
- permission statue = unknown
the documentation is pretty light on using them, so i'm wondering if anyone is successfully using them at this point and if they can help point me to what i'm missing.
Re: push notifications in VL Web
Posted: Fri Nov 28, 2025 8:56 am
by JimmyMD
Hi Steve,
Firstly your webpage must be a PWA as a service worker is required to use push notifications. The browser you use must also support a push manager here is a list of compatible browsers
https://developer.mozilla.org/en-US/doc ... patibility
It is also important to note that the retrieval of the status is an async process as this relies on a promise being returned from the service worker. So to get the status firstly run the push manager query method, then wait for the changed event to fire. This will return the feature and permission statuses of that particular service worker. This is also how the flow of a subscription operates to the subscribe method will invoke the call to the service worker to subscribe to push notification, then the push manager change event will be fired once this is complete with the updated permission and feature status and also the subscription object.
Another thing to note is that running this in a private/incognito browser session would be iffy and if it does work the service worker would be lost as soon as the session is ended.
Cheers,
Jimmy
Re: push notifications in VL Web
Posted: Wed Dec 10, 2025 9:40 am
by stevelee67
thanks for the info so far but i'm still stuck.
i'm using chrome and brave, and occasionally firefox as my testing browser. brave isn't officially on the list (although it's running a chromium engine) so i've switched primarily to chrome
when i run the #pushManager.Query method, the .Changed event doesn't get triggered. in fact, i can't seem to get the .changed event to trigger.
the steps i use before i do the query:
- get the public key (server module; loadPemFile on a file i created using openssl on the IBMi) which is returned to the browser
- attempt to subscribe using #pushManager.subscribe(<publicVapidKeyValue>); i set the subcriptionobject and endpoint to *blanks before doing the subscribe.
- do the pushManager.Query to check the status
.changed never triggers - either on a subscribe or query event.
any help in pointing out what i may be missing would be helpful
Re: push notifications in VL Web
Posted: Thu Dec 11, 2025 1:58 am
by KEC
The biggest thing that can cause problems is if the notification permissions in the browser is set to Block.
Re: push notifications in VL Web
Posted: Tue Feb 10, 2026 6:57 am
by adale
Anyone had luck with the VL web push notifications when running from a IBM i server?
I was provided an example that runs on a windows server without issue (so I am told), but I am having fits with it completing successfully when run on IBM i server.
The first hurdle was trying to identify all the possible CA certs that had to be installed in the DCM. Still not quite sure I have them all, but at least I can get one sent through to a client in Chrome browser (sometimes).
Re: push notifications in VL Web
Posted: Tue Feb 10, 2026 11:38 am
by Kazunori Kasahara
When sending push notifications from IBM i, we initially encountered errors such as GSKit errors. However, we were able to resolve them by following these steps:
1. Retrieve the push service server from the Subscription Object’s Endpoint. (As you know, this varies depending on the browser. For iPhones, it seems Apple’s servers are always used regardless of the browser.)
Example:
#SubscrptionObject := #PushManager.Subscription.SubscriptionObject
#SubscrptionEndpoint := #PushManager.Subscription.Endpoint.Remove( 'https://' )
#SubscrptionEndpoint := #SubscrptionEndpoint.Substring( 1 (#SubscrptionEndpoint.PositionOf( '/' ) - 1) )
2. Specify the retrieved value in sni_fqdn and add the sni_critical setting.
Example:
#Push.SetMiscProperty Name('sni_fqdn') Value(#SubscrptionEndpoint)
#Push.SetMiscProperty Name('sni_critical') Value('false')
Attached is a quick export of the sample.
Re: push notifications in VL Web
Posted: Fri Feb 13, 2026 4:50 am
by adale
Kazunori,
Thanks for the QE. Looks like we were already on the same path with the FQDN being extracted from the endpoint to use.
I was able to get your example working fine on PC with Chrome, but not on an iPad or Mac. When running on iPad or Mac, it will not complete the subscribe step. I see an error in the Safari console on the Mac, but do not know what the issue might be? Do you have any insights?

- Mac snippet of subscribe error.png (40.28 KiB) Viewed 4543 times
Re: push notifications in VL Web
Posted: Fri Feb 13, 2026 11:30 am
by Kazunori Kasahara
Thanks for the update.
Regarding the issue on iPad and Mac, I suspect it's related to Apple's specific requirements for Web Push. On iOS/iPadOS, Web Push notifications only work when the app is added to the Home Screen as a PWA.
In my experience with the iPhone, I’ve found that subscribing works fine through the PWA after adding it to the Home Screen, but it fails when running directly within the Safari browser.
Could you please try adding the page to your Home Screen on the iPad to see if it works? For the Mac, it might also be worth checking if notifications are enabled in the macOS System Settings.
Re: push notifications in VL Web
Posted: Tue Feb 17, 2026 3:48 am
by adale
That was it, in regards to the Subscribe function.
Once I "installed" the vl web PWA on the iPad and Mac, the subscribe feature worked.
Still unable to get the push notification to work. I can get this to work on an PC and on Android device, but not iPad or Mac.
In my trace log, when trying to send the push notification to the iPad, I see the http response code 403 (forbidden) with a reason "BadJwtToken". I have loaded the Apple CA (Apple Public Server ECC CA 11 - G1) in the DCM, but not sure what else I am missing?
Re: push notifications in VL Web
Posted: Tue Feb 17, 2026 5:46 am
by adale
Success ! - For Apple, the PushManager.ClaimsSubject value was required as an email.
Note: I had originally had this with a "mailto:" prefix, but removing that bit, and leaving just a simple email address allowed it to work in both PC/Chrome and iPad.
So, some initial notes on this feature. (please feel free to add to or correct these notes).
1. Install the PWA enabled VL Web application on the client device for testing. Works sometimes from just the browser on PC, but not on Apple products without being installed on the home page.
2. the pushManager.ClaimsSubject is required to be an email address (someone@domain - not mailto:someone@domain) for this to work with Apple products.
3. CA certs I loaded into DCM on iSeries:
Google endpoint: fcm.googleapis.com
GTS Root R1 - Google Trust Services LLC
WR2 = Google Trust Services
* edgecert.googleapis.com
Apple endpoint: web.push.apple.com
Apple Public Server EDD CA 11 - G1
*web.push.apple.com
Re: push notifications in VL Web
Posted: Thu Feb 19, 2026 12:54 am
by adale
Next step. Anyone able to get the Push Notification features to work within the Lansa Mobile Application? Is there some other setting specific within LMA that I am missing? The VL app PWA enabled works on it's own, but not when run inside of LMA?