Error: uploadBlob: PUT... request timed out w/iOS Mobile Client

Operating system

iOS

Joplin version

13.2.5

Desktop version info

N/A (Mobile issue only)

Sync target

Joplin Server

What issue do you have?

First off, thanks to Laurent and everyone who helps maintain this app! I converted from Evernote a couple years ago and it's been awesome and keeps getting better as I tweak it with plugins.

I'm in an unusual spot in that I'm having troubles. Normally, everything just works.

I had a lot of attachment conflicts so I deleted my iPhone app, cleaned up the attachments on the desktop and then reinstalled the iOS client. Now I'm unable to sync my mobile client. The "Check synchronisation configuration" works successfully and if I monitor the server log while I do it I can see that it posts this entry:

2025-03-03 23:57:46: App: POST /api/sessions (200) (105ms)
2025-03-03 23:57:46: App: GET /api/items/root:/info.json:/content (200) (2ms)

However, I can't synchronize, it gives me this error (apologies if I over post what's needed here):

03-03T15:52:48: DecryptionWorker: cannot start because no master key is currently loaded.
03-03T15:52:47: root: root.biometrics: biometricsDone <true>
03-03T15:52:47: root: root.biometrics: biometricsEnabled <false>
03-03T15:52:47: root: root.biometrics: shouldShowMainContent <true>
03-03T15:52:47: root: root.biometrics: this.state.sensorInfo {"enabled":false,"sensorsHaveChanged":false,"supportedSensors":""}
03-03T15:52:47: checkDisabledSyncItemsNotification: No errors: Hiding notification
03-03T15:52:47: Synchronizer: Total folders: 1
03-03T15:52:47: Synchronizer: Total notes: 5
03-03T15:52:47: Synchronizer: Total resources: 3
03-03T15:52:47: Synchronizer: There was some errors:
03-03T15:52:47: Synchronizer: Error: uploadBlob: PUT https://mydomain.net/api/items/root:/.resource/5dce5bc72e004464960ee1013bd1e9d1:/content: Error: The request timed out.
Error: uploadBlob: PUT https://mydomain.net/api/items/root:/.resource/5dce5bc72e004464960ee1013bd1e9d1:/content: Error: The request timed out.
    at ?anon_0_ (/Users/laurent/Library/Developer/Xcode/DerivedData/Joplin-ewsyxzklwwggmtdeyavpfmrkhqhv/Build/Intermediates.noindex/ArchiveIntermediates/Joplin/BuildProductsPath/Release-iphoneos/main.jsbundle:405028:26)
    at throw (native)
    at asyncGeneratorStep (/Users/laurent/Library/Developer/Xcode/DerivedData/Joplin-ewsyxzklwwggmtdeyavpfmrkhqhv/Build/Intermediates.noindex/ArchiveIntermediates/Joplin/BuildProductsPath/Release-iphoneos/main.jsbundle:65318:19)
    at _throw (/Users/laurent/Library/Developer/Xcode/DerivedData/Joplin-ewsyxzklwwggmtdeyavpfmrkhqhv/Build/Intermediates.noindex/ArchiveIntermediates/Joplin/BuildProductsPath/Release-iphoneos/main.jsbundle:65335:29)
    at tryCallOne (address at InternalBytecode.js:1:1180)
    at anonymous (address at InternalBytecode.js:1:1874)
    at apply (native)
    at anonymous (/Users/laurent/Library/Developer/Xcode/DerivedData/Joplin-ewsyxzklwwggmtdeyavpfmrkhqhv/Build/Intermediates.noindex/ArchiveIntermediates/Joplin/BuildProductsPath/Release-iphoneos/main.jsbundle:14625:26)
    at _callTimer (/Users/laurent/Library/Developer/Xcode/DerivedData/Joplin-ewsyxzklwwggmtdeyavpfmrkhqhv/Build/Intermediates.noindex/ArchiveIntermediates/Joplin/BuildProductsPath/Release-iphoneos/main.jsbundle:14514:17)
    at _callReactNativeMicrotasksPass (/Users/laurent/Library/Developer/Xcode/DerivedData/Joplin-ewsyxzklwwggmtdeyavpfmrkhqhv/Build/Intermediates.noindex/ArchiveIntermediates/Joplin/BuildProductsPath/Release-iphoneos/main.jsbundle:14552:17)
    at callReactNativeMicrotasks (/Users/laurent/Library/Developer/Xcode/DerivedData/Joplin-ewsyxzklwwggmtdeyavpfmrkhqhv/Build/Intermediates.noindex/ArchiveIntermediates/Joplin/BuildProductsPath/Release-iphoneos/main.jsbundle:14755:44)
    at __callReactNativeMicrotasks (/Users/laurent/Library/Developer/Xcode/DerivedData/Joplin-ewsyxzklwwggmtdeyavpfmrkhqhv/Build/Intermediates.noindex/ArchiveIntermediates/Joplin/BuildProductsPath/Release-iphoneos/main.jsbundle:3583:48)
    at anonymous (/Users/laurent/Library/Developer/Xcode/DerivedData/Joplin-ewsyxzklwwggmtdeyavpfmrkhqhv/Build/Intermediates.noindex/ArchiveIntermediates/Joplin/BuildProductsPath/Release-iphoneos/main.jsbundle:3447:45)
    at __guard (/Users/laurent/Library/Developer/Xcode/DerivedData/Joplin-ewsyxzklwwggmtdeyavpfmrkhqhv/Build/Intermediates.noindex/ArchiveIntermediates/Joplin/BuildProductsPath/Release-iphoneos/main.jsbundle:3555:15)
    at flushedQueue (/Users/laurent/Library/Developer/Xcode/DerivedData/Joplin-ewsyxzklwwggmtdeyavpfmrkhqhv/Build/Intermediates.noindex/ArchiveIntermediates/Joplin/BuildProductsPath/Release-iphoneos/main.jsbundle:3446:21)
    at invokeCallbackAndReturnFlushedQueue (/Users/laurent/Library/Developer/Xcode/DerivedData/Joplin-ewsyxzklwwggmtdeyavpfmrkhqhv/Build/Intermediates.noindex/ArchiveIntermediates/Joplin/BuildProductsPath/Release-iphoneos/main.jsbundle:3440:33)
03-03T15:52:47: Synchronizer: Operations completed: 
03-03T15:52:47: Synchronizer: createRemote: 1
03-03T15:52:47: Synchronizer: Sync: finished: Synchronisation finished [1741045862885]
03-03T15:52:47: ShareService: Refreshed shares: {"items":[{"id":"y7v4cdfn1YGzO1V1zArSj0","type":3,"folder_id":"697336db43a44800846955a2f412212d","owner_id":"dL08OJlbWKkgEwC7YUnAQH","user":{"id":"dL08OJlbWKkgEwC7YUnAQH"}}],"has_more":false}
03-03T15:52:47: ShareService: Refresh share invitations: []
03-03T15:52:47: Synchronizer: Error: uploadBlob: PUT https://mydomain.net/api/items/root:/.resource/5dce5bc72e004464960ee1013bd1e9d1:/content: Error: The request timed out.
Error: uploadBlob: PUT https://mydomain.net/api/items/root:/.resource/5dce5bc72e004464960ee1013bd1e9d1:/content: Error: The request timed out.
    at ?anon_0_ (/Users/laurent/Library/Developer/Xcode/DerivedData/Joplin-ewsyxzklwwggmtdeyavpfmrkhqhv/Build/Intermediates.noindex/ArchiveIntermediates/Joplin/BuildProductsPath/Release-iphoneos/main.jsbundle:405028:26)
    at throw (native)
    at asyncGeneratorStep (/Users/laurent/Library/Developer/Xcode/DerivedData/Joplin-ewsyxzklwwggmtdeyavpfmrkhqhv/Build/Intermediates.noindex/ArchiveIntermediates/Joplin/BuildProductsPath/Release-iphoneos/main.jsbundle:65318:19)
    at _throw (/Users/laurent/Library/Developer/Xcode/DerivedData/Joplin-ewsyxzklwwggmtdeyavpfmrkhqhv/Build/Intermediates.noindex/ArchiveIntermediates/Joplin/BuildProductsPath/Release-iphoneos/main.jsbundle:65335:29)
    at tryCallOne (address at InternalBytecode.js:1:1180)
    at anonymous (address at InternalBytecode.js:1:1874)
    at apply (native)
    at anonymous (/Users/laurent/Library/Developer/Xcode/DerivedData/Joplin-ewsyxzklwwggmtdeyavpfmrkhqhv/Build/Intermediates.noindex/ArchiveIntermediates/Joplin/BuildProductsPath/Release-iphoneos/main.jsbundle:14625:26)
    at _callTimer (/Users/laurent/Library/Developer/Xcode/DerivedData/Joplin-ewsyxzklwwggmtdeyavpfmrkhqhv/Build/Intermediates.noindex/ArchiveIntermediates/Joplin/BuildProductsPath/Release-iphoneos/main.jsbundle:14514:17)
    at _callReactNativeMicrotasksPass (/Users/laurent/Library/Developer/Xcode/DerivedData/Joplin-ewsyxzklwwggmtdeyavpfmrkhqhv/Build/Intermediates.noindex/ArchiveIntermediates/Joplin/BuildProductsPath/Release-iphoneos/main.jsbundle:14552:17)
    at callReactNativeMicrotasks (/Users/laurent/Library/Developer/Xcode/DerivedData/Joplin-ewsyxzklwwggmtdeyavpfmrkhqhv/Build/Intermediates.noindex/ArchiveIntermediates/Joplin/BuildProductsPath/Release-iphoneos/main.jsbundle:14755:44)
    at __callReactNativeMicrotasks (/Users/laurent/Library/Developer/Xcode/DerivedData/Joplin-ewsyxzklwwggmtdeyavpfmrkhqhv/Build/Intermediates.noindex/ArchiveIntermediates/Joplin/BuildProductsPath/Release-iphoneos/main.jsbundle:3583:48)
    at anonymous (/Users/laurent/Library/Developer/Xcode/DerivedData/Joplin-ewsyxzklwwggmtdeyavpfmrkhqhv/Build/Intermediates.noindex/ArchiveIntermediates/Joplin/BuildProductsPath/Release-iphoneos/main.jsbundle:3447:45)
    at __guard (/Users/laurent/Library/Developer/Xcode/DerivedData/Joplin-ewsyxzklwwggmtdeyavpfmrkhqhv/Build/Intermediates.noindex/ArchiveIntermediates/Joplin/BuildProductsPath/Release-iphoneos/main.jsbundle:3555:15)
    at flushedQueue (/Users/laurent/Library/Developer/Xcode/DerivedData/Joplin-ewsyxzklwwggmtdeyavpfmrkhqhv/Build/Intermediates.noindex/ArchiveIntermediates/Joplin/BuildProductsPath/Release-iphoneos/main.jsbundle:3446:21)
    at invokeCallbackAndReturnFlushedQueue (/Users/laurent/Library/Developer/Xcode/DerivedData/Joplin-ewsyxzklwwggmtdeyavpfmrkhqhv/Build/Intermediates.noindex/ArchiveIntermediates/Joplin/BuildProductsPath/Release-iphoneos/main.jsbundle:3440:33)
03-03T15:52:47: JoplinServerApi: Code: <undefined>
03-03T15:52:47: JoplinServerApi: Error: uploadBlob: PUT https://mydomain.net/api/items/root:/.resource/5dce5bc72e004464960ee1013bd1e9d1:/content: Error: The request timed out.
Error: uploadBlob: PUT https://mydomain.net/api/items/root:/.resource/5dce5bc72e004464960ee1013bd1e9d1:/content: Error: The request timed out.
    at ?anon_0_ (/Users/laurent/Library/Developer/Xcode/DerivedData/Joplin-ewsyxzklwwggmtdeyavpfmrkhqhv/Build/Intermediates.noindex/ArchiveIntermediates/Joplin/BuildProductsPath/Release-iphoneos/main.jsbundle:405028:26)
    at throw (native)
    at asyncGeneratorStep (/Users/laurent/Library/Developer/Xcode/DerivedData/Joplin-ewsyxzklwwggmtdeyavpfmrkhqhv/Build/Intermediates.noindex/ArchiveIntermediates/Joplin/BuildProductsPath/Release-iphoneos/main.jsbundle:65318:19)
    at _throw (/Users/laurent/Library/Developer/Xcode/DerivedData/Joplin-ewsyxzklwwggmtdeyavpfmrkhqhv/Build/Intermediates.noindex/ArchiveIntermediates/Joplin/BuildProductsPath/Release-iphoneos/main.jsbundle:65335:29)
    at tryCallOne (address at InternalBytecode.js:1:1180)
    at anonymous (address at InternalBytecode.js:1:1874)
    at apply (native)
    at anonymous (/Users/laurent/Library/Developer/Xcode/DerivedData/Joplin-ewsyxzklwwggmtdeyavpfmrkhqhv/Build/Intermediates.noindex/ArchiveIntermediates/Joplin/BuildProductsPath/Release-iphoneos/main.jsbundle:14625:26)
    at _callTimer (/Users/laurent/Library/Developer/Xcode/DerivedData/Joplin-ewsyxzklwwggmtdeyavpfmrkhqhv/Build/Intermediates.noindex/ArchiveIntermediates/Joplin/BuildProductsPath/Release-iphoneos/main.jsbundle:14514:17)
    at _callReactNativeMicrotasksPass (/Users/laurent/Library/Developer/Xcode/DerivedData/Joplin-ewsyxzklwwggmtdeyavpfmrkhqhv/Build/Intermediates.noindex/ArchiveIntermediates/Joplin/BuildProductsPath/Release-iphoneos/main.jsbundle:14552:17)
    at callReactNativeMicrotasks (/Users/laurent/Library/Developer/Xcode/DerivedData/Joplin-ewsyxzklwwggmtdeyavpfmrkhqhv/Build/Intermediates.noindex/ArchiveIntermediates/Joplin/BuildProductsPath/Release-iphoneos/main.jsbundle:14755:44)
    at __callReactNativeMicrotasks (/Users/laurent/Library/Developer/Xcode/DerivedData/Joplin-ewsyxzklwwggmtdeyavpfmrkhqhv/Build/Intermediates.noindex/ArchiveIntermediates/Joplin/BuildProductsPath/Release-iphoneos/main.jsbundle:3583:48)
    at anonymous (/Users/laurent/Library/Developer/Xcode/DerivedData/Joplin-ewsyxzklwwggmtdeyavpfmrkhqhv/Build/Intermediates.noindex/ArchiveIntermediates/Joplin/BuildProductsPath/Release-iphoneos/main.jsbundle:3447:45)
    at __guard (/Users/laurent/Library/Developer/Xcode/DerivedData/Joplin-ewsyxzklwwggmtdeyavpfmrkhqhv/Build/Intermediates.noindex/ArchiveIntermediates/Joplin/BuildProductsPath/Release-iphoneos/main.jsbundle:3555:15)
    at flushedQueue (/Users/laurent/Library/Developer/Xcode/DerivedData/Joplin-ewsyxzklwwggmtdeyavpfmrkhqhv/Build/Intermediates.noindex/ArchiveIntermediates/Joplin/BuildProductsPath/Release-iphoneos/main.jsbundle:3446:21)
    at invokeCallbackAndReturnFlushedQueue (/Users/laurent/Library/Developer/Xcode/DerivedData/Joplin-ewsyxzklwwggmtdeyavpfmrkhqhv/Build/Intermediates.noindex/ArchiveIntermediates/Joplin/BuildProductsPath/Release-iphoneos/main.jsbundle:3440:33)
03-03T15:52:47: JoplinServerApi: curl -v -X PUT -H "Content-Type: application/octet-stream" -H "X-API-AUTH: ******" -H "X-API-MIN-VERSION: 2.6.0" -H "Content-Length: 8894" 'https://mydomain.net/api/items/root:/.resource/5dce5bc72e004464960ee1013bd1e9d1:/content'
03-03T15:52:29: RevisionService: maintenance: Done in 121ms
03-03T15:52:29: RevisionService: collectRevisions: Created revisions for 0 notes
03-03T15:52:29: RevisionService: maintenance: Starting...
03-03T15:52:29: RevisionService: maintenance: Service is enabled
03-03T15:52:19: JoplinServerApi: Code: <undefined>
03-03T15:52:19: JoplinServerApi: Error: uploadBlob: PUT https://mydomain.net/api/items/root:/.resource/5dce5bc72e004464960ee1013bd1e9d1:/content: Error: The request timed out.
Error: uploadBlob: PUT https://mydomain.net/api/items/root:/.resource/5dce5bc72e004464960ee1013bd1e9d1:/content: Error: The request timed out.
    at ?anon_0_ (/Users/laurent/Library/Developer/Xcode/DerivedData/Joplin-ewsyxzklwwggmtdeyavpfmrkhqhv/Build/Intermediates.noindex/ArchiveIntermediates/Joplin/BuildProductsPath/Release-iphoneos/main.jsbundle:405028:26)
    at throw (native)
    at asyncGeneratorStep (/Users/laurent/Library/Developer/Xcode/DerivedData/Joplin-ewsyxzklwwggmtdeyavpfmrkhqhv/Build/Intermediates.noindex/ArchiveIntermediates/Joplin/BuildProductsPath/Release-iphoneos/main.jsbundle:65318:19)
    at _throw (/Users/laurent/Library/Developer/Xcode/DerivedData/Joplin-ewsyxzklwwggmtdeyavpfmrkhqhv/Build/Intermediates.noindex/ArchiveIntermediates/Joplin/BuildProductsPath/Release-iphoneos/main.jsbundle:65335:29)
    at tryCallOne (address at InternalBytecode.js:1:1180)
    at anonymous (address at InternalBytecode.js:1:1874)
    at apply (native)
    at anonymous (/Users/laurent/Library/Developer/Xcode/DerivedData/Joplin-ewsyxzklwwggmtdeyavpfmrkhqhv/Build/Intermediates.noindex/ArchiveIntermediates/Joplin/BuildProductsPath/Release-iphoneos/main.jsbundle:14625:26)
    at _callTimer (/Users/laurent/Library/Developer/Xcode/DerivedData/Joplin-ewsyxzklwwggmtdeyavpfmrkhqhv/Build/Intermediates.noindex/ArchiveIntermediates/Joplin/BuildProductsPath/Release-iphoneos/main.jsbundle:14514:17)
    at _callReactNativeMicrotasksPass (/Users/laurent/Library/Developer/Xcode/DerivedData/Joplin-ewsyxzklwwggmtdeyavpfmrkhqhv/Build/Intermediates.noindex/ArchiveIntermediates/Joplin/BuildProductsPath/Release-iphoneos/main.jsbundle:14552:17)
    at callReactNativeMicrotasks (/Users/laurent/Library/Developer/Xcode/DerivedData/Joplin-ewsyxzklwwggmtdeyavpfmrkhqhv/Build/Intermediates.noindex/ArchiveIntermediates/Joplin/BuildProductsPath/Release-iphoneos/main.jsbundle:14755:44)
    at __callReactNativeMicrotasks (/Users/laurent/Library/Developer/Xcode/DerivedData/Joplin-ewsyxzklwwggmtdeyavpfmrkhqhv/Build/Intermediates.noindex/ArchiveIntermediates/Joplin/BuildProductsPath/Release-iphoneos/main.jsbundle:3583:48)
    at anonymous (/Users/laurent/Library/Developer/Xcode/DerivedData/Joplin-ewsyxzklwwggmtdeyavpfmrkhqhv/Build/Intermediates.noindex/ArchiveIntermediates/Joplin/BuildProductsPath/Release-iphoneos/main.jsbundle:3447:45)
    at __guard (/Users/laurent/Library/Developer/Xcode/DerivedData/Joplin-ewsyxzklwwggmtdeyavpfmrkhqhv/Build/Intermediates.noindex/ArchiveIntermediates/Joplin/BuildProductsPath/Release-iphoneos/main.jsbundle:3555:15)
    at flushedQueue (/Users/laurent/Library/Developer/Xcode/DerivedData/Joplin-ewsyxzklwwggmtdeyavpfmrkhqhv/Build/Intermediates.noindex/ArchiveIntermediates/Joplin/BuildProductsPath/Release-iphoneos/main.jsbundle:3446:21)
    at invokeCallbackAndReturnFlushedQueue (/Users/laurent/Library/Developer/Xcode/DerivedData/Joplin-ewsyxzklwwggmtdeyavpfmrkhqhv/Build/Intermediates.noindex/ArchiveIntermediates/Joplin/BuildProductsPath/Release-iphoneos/main.jsbundle:3440:33)
03-03T15:52:19: JoplinServerApi: curl -v -X PUT -H "Content-Type: application/octet-stream" -H "X-API-AUTH: ******" -H "X-API-MIN-VERSION: 2.6.0" -H "Content-Length: 8894" 'https://mydomain.net/api/items/root:/.resource/5dce5bc72e004464960ee1013bd1e9d1:/content'
0

That may be redundant but I didn't want to miss something necessary.

Could this have something to do with the encryption message? Encryption is not enabled, none of my notes are encrypted.

Any guidance would be greatly appreciated!

Update: I have an Android phone which I don't usually keep apps on but I put Joplin Mobile v3.2.7 (Android) on it and it doesn't have the same problem. It sort of has a different problem in that after a few minutes of synching the app goes into the background which stops the sync. However, I'm not sure if that's normal Android behavior since I'm not typically an Android user. But for the basic issue it's definitely working and has so far synched 1,271 notes. It's just odd that I have to keep restarting the process.

Inexplicably, after getting the uploadBlob error time after time, it started working. I didn't make any changes anywhere other than installing on Android and now I don't know if it working on Android was just coincidental when it decided to start working on iOS. I have no idea, I guess it will be a mystery.