Have you inspected what the "Getting the Serial Numbers for Passes Associated with a Device" endpoint is reporting?
From what I understand, the sequence that occurs is:
- Server sends a push to APNS
- Wallet (on the target device) determines which pass to use and hits: webServiceURL
/
version/devices/
deviceLibraryIdentifier/registrations/
passTypeIdentifier?passesUpdatedSince=
tag - The "Serial Numbers for Passes Associated with a Device" endpoint is supposed to return JSON with lastUpdated (string) and serialNumbers (array of strings)
- Wallet uses the response to determine if it actually needs to continue -- that is, if the lastUpdated value is newer than the on-device pass
- If yes, it hits: webServiceURL/version/passes/passTypeIdentifier/serialNumber
- The "Latest Version of a Pass" endpoint is supposed to return the pkpass data
If the resonse of Step 3 is malformed, then (obviously) Wallet would never get to Steps 4 / 5 / 6