🎸
🚀 Beta Running
PYNGUP: Rebellion against toxic productivity
Beta limited to 100 spots. Tasks become social commitments instead of lonely to-dos.
For a few days now, I've been observing the same problem in various projects: post and patch requests on some Rest endpoints are being rejected with an Error 500.
The following error message can be found in the Drupal logs:
Symfony\Component\Routing\Exception\MethodNotAllowedException: in Drupal\Core\Routing\MethodFilter->filter()
The problem seems irrational: the REST Resources were all correctly created and enabled via the Rest UI module with POST or PATCH method respectively, json selected as data format and cookie selected as authentication method.
Interesting: The problem only appeared on remote web servers. It did not happen in local development environments. All requests went through without a hitch.
All affected pages were multilingual and mostly had "German" selected as the default language. Since all requests run on URLs that are not prefixed with a language selection, I suspect this is a problem in the Drupal routing system. If you call a URL without a language prefix - for example example.com/demo instead of example.com/en/demo - then Drupal internally redirects to the URL with the language prefix. Presumably, this will result in a change to the request header.
.
As a workaround, it helps to adjust the language setting in the user profile. There the value for "Administration page language" should be set to "No preference".

Nikolai Fischer is the founder of Kommune3 (since 2007) and a leading expert in Drupal development and tech entrepreneurship. With 17+ years of experience, he has led hundreds of projects and achieved #1 on Hacker News. As host of the "Kommit mich" podcast and founder of skillution, he combines technical expertise with entrepreneurial thinking. His articles about Supabase, modern web development, and systematic problem-solving have influenced thousands of developers worldwide.
Comments