Skip to content

SSL handshake failure integrating with Supabase storage as backend S3 storage #14526

@datoslabs

Description

@datoslabs

Hi,

I am new and evaluating Payload for my upcoming project. I followed the steps in How to set up Payload with Supabase for your Next.js app setting up Supabase storage as backend S3 storage. I encountered the following error when I tried to upload am image from Payload:

 POST /admin/collections/media/create 200 in 79ms
Next-file-upload: New upload started file->Screenshot_2025.10.28_10.11.26.413.png, bytes:0
Next-file-upload: Uploading file->Screenshot_2025.10.28_10.11.26.413.png, bytes:65245...
Next-file-upload: Uploading file->Screenshot_2025.10.28_10.11.26.413.png, bytes:130781...
Next-file-upload: Uploading file->Screenshot_2025.10.28_10.11.26.413.png, bytes:196317...
Next-file-upload: Uploading file->Screenshot_2025.10.28_10.11.26.413.png, bytes:261853...
Next-file-upload: Uploading file->Screenshot_2025.10.28_10.11.26.413.png, bytes:327389...
Next-file-upload: Uploading file->Screenshot_2025.10.28_10.11.26.413.png, bytes:392925...
Next-file-upload: Uploading file->Screenshot_2025.10.28_10.11.26.413.png, bytes:458461...
Next-file-upload: Uploading file->Screenshot_2025.10.28_10.11.26.413.png, bytes:523997...
Next-file-upload: Uploading file->Screenshot_2025.10.28_10.11.26.413.png, bytes:589533...
Next-file-upload: Uploading file->Screenshot_2025.10.28_10.11.26.413.png, bytes:610601...
Next-file-upload: Upload finished file->Screenshot_2025.10.28_10.11.26.413.png, bytes:610601
Next-file-upload: Upload file->Screenshot_2025.10.28_10.11.26.413.png completed, bytes:610601.
[13:39:08.119] ERROR (31604): There was an error while uploading files corresponding to the collection media with filename Screenshot_2025.10.28_10.11.26.413.png:
[13:39:08.123] ERROR (31604): write EPROTO 24A20000:error:0A000410:SSL routines:ssl3_read_bytes:sslv3 alert handshake failure:c:\ws\deps\openssl\openssl\ssl\record\rec_layer_s3.c:1605:SSL alert number 40

    err: {
      "type": "Error",
      "message": "write EPROTO 24A20000:error:0A000410:SSL routines:ssl3_read_bytes:sslv3 alert handshake failure:c:\\ws\\deps\\openssl\\openssl\\ssl\\record\\rec_layer_s3.c:1605:SSL alert number 40\n",
      "stack":
          Error: write EPROTO 24A20000:error:0A000410:SSL routines:ssl3_read_bytes:sslv3 alert handshake failure:c:\ws\deps\openssl\openssl\ssl\record\rec_layer_s3.c:1605:SSL alert number 40    

              at WriteWrap.onWriteComplete [as oncomplete] (node:internal/stream_base_commons:87:19)
              at WriteWrap.callbackTrampoline (node:internal/async_hooks:130:17)
      "errno": -4046,
      "code": "EPROTO",
      "syscall": "write",
      "$metadata": {
        "attempts": 1,
        "totalRetryDelay": 0
      }
    }
[13:39:08.157] ERROR (31604): write EPROTO 24A20000:error:0A000410:SSL routines:ssl3_read_bytes:sslv3 alert handshake failure:c:\ws\deps\openssl\openssl\ssl\record\rec_layer_s3.c:1605:SSL alert number 40

    err: {
      "type": "Error",
      "message": "write EPROTO 24A20000:error:0A000410:SSL routines:ssl3_read_bytes:sslv3 alert handshake failure:c:\\ws\\deps\\openssl\\openssl\\ssl\\record\\rec_layer_s3.c:1605:SSL alert number 40\n",
      "stack":
          Error: write EPROTO 24A20000:error:0A000410:SSL routines:ssl3_read_bytes:sslv3 alert handshake failure:c:\ws\deps\openssl\openssl\ssl\record\rec_layer_s3.c:1605:SSL alert number 40    

              at WriteWrap.onWriteComplete [as oncomplete] (node:internal/stream_base_commons:87:19)
              at WriteWrap.callbackTrampoline (node:internal/async_hooks:130:17)
      "errno": -4046,
      "code": "EPROTO",
      "syscall": "write",
      "$metadata": {
        "attempts": 1,
        "totalRetryDelay": 0
      }
    }
 POST /api/media?depth=0&fallback-locale=null 500 in 437ms

I can successfully upload files to Supabase storage/bucket via its dashboard as well via @aws-sdk/client-s3 S3Client and PutObjectCommand but fails when I try to upload via local Payload project. Could anyone please help shed some light on how to go about debugging and resolving this error? Thank you!

@payloadcms/next 3.61.1
@payloadcms/storage-s3 3.61.1

Originally posted by @datoslabs in #14414

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions