S3 Sync Target not working in 3.4.12 Windows

Operating system

Windows

Joplin version

3.4.12

Desktop version info

Joplin 3.4.12 (prod, win32)

Device: win32, AMD Ryzen 9 7950X3D 16-Core Processor
Client ID: 15354c5888564f6292f4a86787a7138c
Sync Version: 3
Profile Version: 48
Keychain Supported: Yes
Alternative instance ID: -

Revision: e9a9f68

Backup: 1.4.3
Freehand Drawing: 3.1.0

Sync target

S3

Editor

Markdown Editor

What issue do you have?

Joplin will not sync to S3, despite a successful 'Check synchronisation configuration'. This was also a bug in version 3.3.10

The error it shows above the Synchronise button is:

Completed: 09/10/2025 18:09 (49s)

Last error: TypeError: Failed to construct 'URL': Invalid URL

I discovered this when switching from Joplin Cloud to a personal S3 bucket, after enabling encryption caused my Joplin Cloud account to go from well under 100% capacity, to 132% capacity before it cut me off from being able to synchronize... not a great user experience.

what s3 provider are you using? it's working well here with cloudflare r2 on windows

I found one thread referencing this same error in reference to Alibaba Cloud OSS

the providers that are known to work are listed here: S3 synchronisation | Joplin

AWS is my S3 provider.

AWS Config

My policy is

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                  "s3:ListBucket",
                  "s3:GetBucketLocation",
                  "s3:GetObject",
                  "s3:DeleteObject",
                  "s3:DeleteObjectVersion",
                  "s3:PutObject"
            ],
            "Resource": [
                "arn:aws:s3:::<bucket-name>",
                "arn:aws:s3:::<bucket-name>/*"
            ]
        }
    ]
}

Bucket Versioning is Disabled
Block All Public Access is Enabled
Default Encryption with Amazon S3 key (SSE-S3) is being used
Bucket region is US East (N. Virginia) us-east-1

Joplin Config

My S3 URL is https://s3.us-east-1.amazonaws.com
My S3 region is us-east-1
The check succeeds whether or not 'Force path style' is enabled, and the error also occurs whether or not it is enabled

In the thread that I linked it looks like the user didn't have https specified in the URL, they had:

oss-cn-beijing.aliyuncs.com

And after they added https it started working: https://oss-cn-beijing.aliyuncs.com

so you might want to double check the settings and make sure that the S3 URL includes the https://

If it does already include the https:// (as in your comment) I'm not sure what could be causing that. You might try looking at the log.txt file in your joplin profile folder and see if it provides any more details

It does include https, everything I posted was directly copied from Joplin or AWS, not hand-typed.

Here are the contents of a brand new / emptied log.txt, after I click the Synchronize button:

2025-10-10 11:29:09: EditorPluginHandler: emitActivationCheck: responses: {"activatedEditors":[],"effectiveNoteId":"a62ded28315a45ae95c22130032883fd","windowId":"default"}
2025-10-10 11:29:09: useFormNote: Sync has finished and note has never been changed - reloading it
2025-10-10 11:29:10: Preparing scheduled sync
2025-10-10 11:29:10: Starting scheduled sync
2025-10-10 11:29:10: Synchronizer: Sync: starting: Starting synchronisation to target 8... supportsAccurateTimestamp = false; supportsMultiPut = false} [1760110150591]
2025-10-10 11:29:10: Synchronizer: Indexing resources...
2025-10-10 11:29:10: ResourceService::indexNoteResources: Start
2025-10-10 11:29:10: Performance: ResourceService/indexNoteResources: End at 63403.72s (took 101.8ms)
2025-10-10 11:29:10: ResourceService::indexNoteResources: Completed
2025-10-10 11:29:20: SearchEngine: Updating FTS table...
2025-10-10 11:29:20: Updating items_normalized from {"updated_time":0,"id":""}
2025-10-10 11:29:20: SearchEngine: Updated FTS table in 1ms. Inserted: 0. Deleted: 0
2025-10-10 11:29:20: Performance: SearchEngine/syncTables: End at 63413.83s (took 102ms)
2025-10-10 11:29:31: Synchronizer: [error] TypeError: Failed to construct 'URL': Invalid URL
TypeError: Failed to construct 'URL': Invalid URL
    at parseUrl (file:///C:/Users/gilre/AppData/Local/Programs/Joplin/resources/app.asar/main-html.bundle.js:3711:28906)
    at toEndpointV1 (file:///C:/Users/gilre/AppData/Local/Programs/Joplin/resources/app.asar/main-html.bundle.js:3711:29312)
    at s (file:///C:/Users/gilre/AppData/Local/Programs/Joplin/resources/app.asar/main-html.bundle.js:3711:32952)
2025-10-10 11:29:31: Synchronizer: Sync: finished: Synchronisation finished [1760110150591]
2025-10-10 11:29:31: Synchronizer: Operations completed: 
2025-10-10 11:29:31: Synchronizer: Total folders: 32
2025-10-10 11:29:31: Synchronizer: Total notes: 619
2025-10-10 11:29:31: Synchronizer: Total resources: 1599
2025-10-10 11:29:31: Synchronizer: [warn] There was some errors:
2025-10-10 11:29:31: Synchronizer: [warn] TypeError: Failed to construct 'URL': Invalid URL
TypeError: Failed to construct 'URL': Invalid URL
    at parseUrl (file:///C:/Users/gilre/AppData/Local/Programs/Joplin/resources/app.asar/main-html.bundle.js:3711:28906)
    at toEndpointV1 (file:///C:/Users/gilre/AppData/Local/Programs/Joplin/resources/app.asar/main-html.bundle.js:3711:29312)
    at s (file:///C:/Users/gilre/AppData/Local/Programs/Joplin/resources/app.asar/main-html.bundle.js:3711:32952)
2025-10-10 11:29:31: checkDisabledSyncItemsNotification: No errors: Hiding notification
2025-10-10 11:29:32: DecryptionWorker: starting decryption...
2025-10-10 11:29:32: DecryptionWorker: completed decryption.

For reference (based on the v3.4.12 source map), this resolves to:

TypeError: Failed to construct 'URL': Invalid URL
    at parseUrl (packages/lib/node_modules/@aws-sdk/url-parser/dist-cjs/index.js#L7)
    at toEndpointV1 (packages/lib/node_modules/@aws-sdk/middleware-endpoint/dist-cjs/adaptors/toEndpointV1.js#L12)
    at s (packages/lib/node_modules/@aws-sdk/middleware-endpoint/dist-cjs/resolveEndpointConfig.js#L10)

Is there a specific person we should be tagging for things like this for faster resolution / troubleshooting?

Maybe try creating a new profile in Joplin (as you switched form Joplin cloud to s3 on an existing profile) and see if the sync works correctly then?

1 Like

That seems to work, for some reason…

Interestingly, while this worked on my Windows Machine (Joplin v3.4.12) and my Android Phone (Joplin v3.4.7), it does NOT work on my Macbook (Joplin v3.4.12) - even after creating a new profile, copying and pasting in the exact same connection and credentials info will not allow it to connect on either the Default profile or the new profile. Despite having no firewall or VPN on that machine, clicking the Check button results in “Error. Please check that URL, username, password, etc. are correct and that the sync target is accessible. The reported error was: UnknownError”

Just for the record, another Joplin S3 user here and I’ve had no issues at all - been using S3 for around a year and it works very nicely.

Is it worth checking your S3 setup in case something is awry? (I just followed steps I found online and wouldn’t be able to say I completely knew what I was doing! So I can’t point at anything specific unfortunately).

It isn’t a problem with the bucket, more than one client can clearly access the S3 bucket already

Restarting my Macbook seems to have fixed the UnknownError, but in any case it looks like there are multiple bugs across clients that we can point to from this experience.

Hi. Whoops looks like I spoke to soon about this - I just updated to 3.4.12 on a desktop client and have a very similar issue. Previous version 3.3.2 was syncing perfectly on S3 AWS for many months, now I’m getting the error “do not have proper permissions in your bucket” on sync. I have not changed any settings and I’ve double checked them.

Meanwhile my other desktop client is running 3.3.4 with no S3 sync issues and I’m also running a recent Android release with no issues, so I’m reluctant to change anything in my S3 settings, which I don’t fully understand to be honest!

@gilreathjw - did you manage to solve this with 3.4.12? Something surely must have been changed in this client which changes S3 sync or requires something changed in the bucket settings.

Any help would be appreciated.

Thanks
Ben

Edit: Well this is strange. Exactly as you did, I rebooted Windows and the problem is fixed, at least now. Never seen this before when upgrading clients so is a little concerning. Something got “stuck” somehow? Pleased I didn’t start messing with S3 settings anyway. I’ll monitor the situation.