Smart Placement does not work for multiple DB bindings

After I’ve added second D1 binding to my Worker, Smart Placement started to show:

“Not enough requests” - “Smart Placement is inactive as this Worker needs to make more requests to determine the optimal location. Worker will run with Default placement until there are enough requests.”

This message goes away only after I remove the second D1 binding.
Both D1 databases are located in WNAM.
I’m in Europe and I can see the difference in DB latency with the second DB which disables Smart Placement.

Can anyone confirm this behavior please? It does look like a bug on Cloudflare side to me.


Hello there, I’m sorry to read that you’re experiencing difficulties.

I see you already created the ticket ID #3287746 for this request, and I’ll work on it.

For clarity, what is the name of the Worker in question? Could you share a screenshot demonstrating that full message from Smart Placement?

Also, it would be great if you could share a HAR file capturing this issue and the JS console log output as well?

I’ve created a new worker “test-smartplacement” that has a binding to db-test1 and is doing a couple of dummy DB queries. Once smart placement kicked in, the response time got down from 1.5s to 0.3s.
After I’ve added a second DB binding (db-test2), I see “Not enough subrequests” and it’s still slow.

The only difference with my production app (“api-production”) is slightly different message “Not enough requests”

But the behavior is the same and I can confirm smart placement doesn’t work even in a new dummy worker with 2 DB bindings.

Hey @Honza, thanks for your reply.

I’m working on this case via the ticket ID #3287746

I’ll keep you posted.