new row violates row-level security policy (Supabase)
Your insert or update is blocked by RLS. Add a policy for that exact write, without turning RLS off.
From Nov 10, 2026 at the earliest, Supabase drops four old TLS 1.2 CBC ciphers on project APIs. Who's affected, the errors you'll see, and how to check and update the client.

Date may move: Supabase says removal starts November 10, 2026 at the earliest and that "The date might move later based on customer feedback" (Supabase: TLS for project APIs). Last checked Oct 20, 2026.
Most apps aren't affected. Supabase says fewer than 0.0001% of connections to Supabase projects used these cipher suites (Supabase: TLS for project APIs). This page is for the rare case where an old device, old OS or outdated runtime stops reaching your project.
Update the client, not your Supabase project. Update the affected client's operating system, runtime or TLS library to a version that supports TLS 1.3 or one of the TLS 1.2 cipher suites Supabase keeps offering (Supabase troubleshooting: TLS handshake failures after removal of CBC-mode ciphers).
The TLS 1.2 cipher suites Supabase keeps offering (Supabase: TLS for project APIs):
| IANA name | OpenSSL name |
|---|---|
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 | ECDHE-ECDSA-AES128-GCM-SHA256 |
TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 | ECDHE-ECDSA-CHACHA20-POLY1305 |
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 | ECDHE-RSA-AES128-GCM-SHA256 |
TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 | ECDHE-RSA-CHACHA20-POLY1305 |
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 | ECDHE-ECDSA-AES256-GCM-SHA384 |
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 | ECDHE-RSA-AES256-GCM-SHA384 |
All standard TLS 1.3 cipher suites stay supported (Supabase: TLS for project APIs).
If you can't update a client, Supabase suggests routing its traffic through a proxy you control. The proxy accepts the old client's ciphers and forwards requests to Supabase over a supported TLS connection. If you can't do either, open a Supabase support ticket (Supabase troubleshooting).
Starting November 10, 2026 at the earliest, Supabase stops offering four CBC-mode TLS 1.2 cipher suites on project HTTP APIs, meaning <project_ref>.supabase.co and custom domains (Supabase changelog, Oct 12, 2026). Supabase notes "The date might move later based on customer feedback" (Supabase: TLS for project APIs).
The suites being removed (Supabase changelog):
| IANA name | OpenSSL name |
|---|---|
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 | ECDHE-ECDSA-AES128-SHA256 |
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 | ECDHE-RSA-AES128-SHA256 |
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 | ECDHE-ECDSA-AES256-SHA384 |
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 | ECDHE-RSA-AES256-SHA384 |
Supabase says these older suites "have known security weaknesses and often trigger warnings in security scans" (Supabase changelog). There's no change for TLS 1.3, and TLS 1.0 and 1.1 were already unsupported.
Affected: Auth, the Data API, Storage, Realtime and Edge Functions, because they're all served from the project API domain (Supabase changelog).
Not affected: direct Postgres connections, connections through the pooler, and the Management API at api.supabase.com (Supabase: TLS for project APIs).
Supabase emailed owners of projects that had received connections using these ciphers on October 14, 2026 (Supabase changelog). If you got that email, start with the clients it mentions.
The client fails during the TLS handshake, before it sends any HTTP request, so the failed request doesn't appear in your project's API logs. Up-to-date devices keep working (Supabase troubleshooting).
Error messages by client, from Supabase's troubleshooting page (Supabase troubleshooting):
| Client | Error message |
|---|---|
| OpenSSL-based clients, such as curl, Node.js or PHP | sslv3 alert handshake failure |
| Browsers | ERR_SSL_VERSION_OR_CIPHER_MISMATCH |
| Windows PowerShell and .NET Framework | The request was aborted: Could not create SSL/TLS secure channel. |
| Java | javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure |
| Apple platforms | An SSL error has occurred and a secure connection to the server cannot be made. |
On a current OpenSSL 3.x build, the same kind of failure reads ssl/tls alert handshake failure (SSL alert number 40) rather than sslv3 .... We saw that wording when we pointed a CBC-only curl and Node.js client at a local test server that offered only GCM suites. Affected clients usually run older libraries, so expect either form.
If you see these errors before November 10, the cipher removal isn't the cause. Something else is, for example a client that only speaks TLS 1.0 or 1.1, which Supabase project APIs don't accept (Supabase troubleshooting).
A client is affected only if it can't use TLS 1.3 and the only TLS 1.2 suites it shares with Supabase are the CBC ones (Supabase: TLS for project APIs). Supabase's examples:
Remember older versions of your own mobile or desktop app that people haven't updated, on phones or computers that no longer get OS updates (Supabase: TLS for project APIs).
Supabase's checklist (Supabase: TLS for project APIs):
<project_ref>.supabase.co and any custom domain. Include Realtime connections, servers, embedded devices and third-party integrations.A request that works today proves nothing. Until the removal date Supabase still offers the CBC suites, so an affected client keeps connecting until then (Supabase: TLS for project APIs).
If the client machine has curl, you can check now whether it connects without the CBC suites by limiting it to TLS 1.2 and the suites Supabase keeps. Any HTTP status code, even 401, means the TLS handshake worked. A handshake error means that client relies on the suites being removed (or on something else that's unsupported).
curl -sS -o /dev/null -w '%{http_code}\n' --tlsv1.2 --tls-max 1.2 \
--ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384' \
https://<project_ref>.supabase.co/rest/v1/
Supabase is removing four TLS 1.2 CBC cipher suites from project APIs
(<ref>.supabase.co and custom domains) from Nov 10, 2026 at the earliest.
List every client in this project that calls the Supabase API (web, mobile,
desktop, servers, devices, integrations) with its OS, runtime and TLS library
versions, and any TLS version or cipher settings in code or config.
Flag any client that can't do TLS 1.3 and might only support the CBC suites.
Don't disable certificate validation or switch any client to plain HTTP.
Show me the list and proposed changes and wait for my OK.
Supabase RLS guide · Invalid API key · CORS errors on Supabase Edge Functions
Did an old device or app version stop connecting to your project? Tell us what it was (OS and app version), and we'll add it to this page.
This guide is educational and based on the vendor's public docs as of the review date. Platforms change: check the linked sources. Not a security audit. Disclaimer.
From BuiltSafely · builtsafely.com · https://builtsafely.com/fixes/supabase-tls-cbc-ciphers/
The BuiltSafely weekly
Platform changes that affect the security of AI-built apps, checked against official docs. Free. Unsubscribe any time.