Understanding -402 Response Limit for makeWebRequest?

I'm trying to understand what defines the limit at which makeWebRequest starts returning a -402 response code.

In my case, a user is encountering this error with significantly less data than I see in my own tests. He’s using a Fenix 7 Pro, paired with an Android 13 phone and Garmin Connect 5.14. The request starts failing for him with around 32 kB of JSON response data.

In contrast, I'm able to handle up to 44 kB of JSON:

  • In the simulator

  • On my Epix 2 Pro (which I believe is very similar to the Fenix 7 Pro, aside from the display)

One key difference: I’m on iOS, while he's on Android. I tried changing the phone OS in the simulator settings, but regardless of whether I set it to iOS or Android, I can still process up to 44 kB without issue.

Does anyone know:

  • What actually determines when a -402 is triggered?

  • Could the phone OS, Garmin Connect version, or watch model affect this limit?

  • Is there any official documentation or known variability in how makeWebRequest handled this limit?

Any insights would be greatly appreciated!

  • Out of those things I think only the watch model counts.

    I'm surprised you can get 32k without problem. I thought the limit is around 8k

  • That's interesting—perhaps the limit has changed in recent SDK versions. Have you come across any official documentation about this?

    I haven’t found anything myself, so I’ve submitted a request to clarify it:

    forums.garmin.com/.../request-for-documentation-and-simulator-accuracy-on-makewebrequest-limits

  • Is there any limit on data which are SEND OUT by makeWebRequest?

    I made some testing and it looks like I can send significantly more data out than recieve but would like to know the limits before app release. 

  • I made some testing and it looks like I can send significantly more data out than recieve but would like to know the limits before app release. 

    That's very interesting. I think the only option is to test it and see what happens. It would be especially interesting to find out whether makeWebRequest returns the same error codes as when receiving data — or if something else occurs, like an out-of-memory error.

  • I made some testing and it looks like I can send significantly more data out than recieve but would like to know the limits before app release. 

    That's very interesting. I think the only option is to test it and see what happens. It would be especially interesting to find out whether makeWebRequest returns the same error codes as when receiving data — or if something else occurs, like an out-of-memory error.

  • I did not push it to the limits but I manged to send out almost twice as much data as I could recieve - I tried to fetch identical data which were previously send out to my server. Maybe that was encoded different way in the background - not sure. At this point i'm just going to generate dummy data to check if worst case scenario will be handled for my app.