# Kirby Panel not editable with Bunny CDN

**URL:** <https://forum.getkirby.com/t/kirby-panel-not-editable-with-bunny-cdn/32215>\
**Category:** Questions\
**Tags:** v4\
**Created:** [August 9, 2024, 1:31pm UTC](https://forum.getkirby.com/t/kirby-panel-not-editable-with-bunny-cdn/32215 "2024-08-09T13:31:31Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![beromir](https://avatars.discourse-cdn.com/v4/letter/b/c5a1d2/32.png) [@beromir](https://forum.getkirby.com/u/beromir)\
**Post date:** [August 9, 2024, 1:31pm UTC](https://forum.getkirby.com/t/kirby-panel-not-editable-with-bunny-cdn/32215/1 "2024-08-09T13:31:31Z")

</div>

Hey,

I have a problem with the Kirby Panel and Bunny CDN.  
Every time I try to edit content on a page, for example switching a toggle, a request is sent to lock the page.

This request is a POST request with the x-http-method-override header set to PATCH. The response I get is a 404 `No route found for path: "pages/test/lock" and request method: "POST`.  
The [Bunny.net](http://Bunny.net) support responded that they strip the header internally before passing it back to the origin.

Is there a way to send the request as PATCH?

---

<div class="post-metadata">

**Author:** ![distantnative](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.getkirby.com/distantnative/32/11319_2.png) [@distantnative](https://forum.getkirby.com/u/distantnative)\
**Post date:** [August 9, 2024, 2:06pm UTC](https://forum.getkirby.com/t/kirby-panel-not-editable-with-bunny-cdn/32215/2 "2024-08-09T14:06:31Z")

</div>

The source of your issue is here: [kirby/panel/src/api/request.js at main · getkirby/kirby · GitHub](https://github.com/getkirby/kirby/blob/main/panel/src/api/request.js#L21-L29)

Where Kirby converts those request to POST requests and adds the `x-http-method-override` header. The problem is that this was necessary as many servers will block PATCH requests etc.

Not sure yet if/how we can handle servers that allow those but strip the header instead. Maybe @lukasbestle has an idea.

---

<div class="post-metadata">

**Author:** ![beromir](https://avatars.discourse-cdn.com/v4/letter/b/c5a1d2/32.png) [@beromir](https://forum.getkirby.com/u/beromir)\
**Post date:** [August 9, 2024, 2:13pm UTC](https://forum.getkirby.com/t/kirby-panel-not-editable-with-bunny-cdn/32215/3 "2024-08-09T14:13:41Z")

</div>

Yes, I have seen the issue on GitHub. Would be nice to have maybe a config setting for that.

---

<div class="post-metadata">

**Author:** ![lukasbestle](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.getkirby.com/lukasbestle/32/11437_2.png) [@lukasbestle](https://forum.getkirby.com/u/lukasbestle)\
**Post date:** [August 15, 2024, 7:39pm UTC](https://forum.getkirby.com/t/kirby-panel-not-editable-with-bunny-cdn/32215/4 "2024-08-15T19:39:52Z")

</div>

At the moment we hardcode the `methodOverwrite` option to `true`. What we could do is to build a test route that is called once when the Panel loads, e.g. `PATCH /api/system/method-test`. The backend would return the request method it received. If the Panel gets a successful response with the correct method, we can set `methodOverwrite` to `false`, otherwise to `true`.

(Probably the option should rather be called `methodOverride`)

---

<div class="post-metadata">

**Author:** ![distantnative](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.getkirby.com/distantnative/32/11319_2.png) [@distantnative](https://forum.getkirby.com/u/distantnative)\
**Post date:** [August 15, 2024, 7:42pm UTC](https://forum.getkirby.com/t/kirby-panel-not-editable-with-bunny-cdn/32215/5 "2024-08-15T19:42:55Z")

</div>

I think I’d rather go for the config option then. Having that call on every Panel (re-)load doesn’t feel great to me (also considering the niche need for it).

---

<div class="post-metadata">

**Author:** ![beromir](https://avatars.discourse-cdn.com/v4/letter/b/c5a1d2/32.png) [@beromir](https://forum.getkirby.com/u/beromir)\
**Post date:** [August 20, 2024, 3:28pm UTC](https://forum.getkirby.com/t/kirby-panel-not-editable-with-bunny-cdn/32215/6 "2024-08-20T15:28:46Z")

</div>

In my opinion, the config option would also be the best solution. But it might also be nice to have a area in the System Panel view to check these things manually or automatically when you visit the system view.

---

<div class="post-metadata">

**Author:** ![distantnative](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.getkirby.com/distantnative/32/11319_2.png) [@distantnative](https://forum.getkirby.com/u/distantnative)\
**Post date:** [August 20, 2024, 6:24pm UTC](https://forum.getkirby.com/t/kirby-panel-not-editable-with-bunny-cdn/32215/7 "2024-08-20T18:24:49Z")

</div>

That’s true. I figure we could probably add a check to the tests that the system view runs - and if it fails show a warning with a link to the docs for the new config option.

---

<div class="post-metadata">

**Author:** ![lukasbestle](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.getkirby.com/lukasbestle/32/11437_2.png) [@lukasbestle](https://forum.getkirby.com/u/lukasbestle)\
**Post date:** [August 25, 2024, 4:06pm UTC](https://forum.getkirby.com/t/kirby-panel-not-editable-with-bunny-cdn/32215/8 "2024-08-25T16:06:01Z")

</div>

Sounds great. We could even switch the default to proper HTTP methods and only offer the method override header as an option for those who need it (considering that the HTTP methods are standards-compliant and most server setups should be supporting them).

---

<div class="post-metadata">

**Author:** ![ImaCrea](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.getkirby.com/imacrea/32/13129_2.png) [@ImaCrea](https://forum.getkirby.com/u/ImaCrea)\
**Post date:** [September 17, 2026, 10:57pm UTC](https://forum.getkirby.com/t/kirby-panel-not-editable-with-bunny-cdn/32215/9 "2026-09-17T22:57:12Z")

</div>

Hi there, I’ve encountered the same issue with Bunny CDN today on kirby 5.5.3.

I tried to put this in config file

```auto
return [
  'api' => [
    'methodOverride' => false
  ]
];

```

but nothing seemed to change.

In the end I fixed it by **disabling** ‘ **Forward host header** ’ in CDN\>General\>Origin settings.

---

<div class="post-metadata">

**Author:** ![ImaCrea](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.getkirby.com/imacrea/32/13129_2.png) [@ImaCrea](https://forum.getkirby.com/u/ImaCrea)\
**Post date:** [September 18, 2026, 9:34am UTC](https://forum.getkirby.com/t/kirby-panel-not-editable-with-bunny-cdn/32215/10 "2026-09-18T09:34:09Z")

</div>

Well I thought it worked as I didn’t see the error triggered anymore when changing state of a checkbox but actually it’s still blocked if I try to save a change.

I’ve tried to add that edge rule to bunny and then purge cache but doesn’t seem to work neither 😕

 ![Capture d’écran 2026-09-18 à 11.32.41](https://europe1.discourse-cdn.com/flex017/uploads/getkirby/original/3X/7/c/7c3beefa2d6411144029302bf0db5751ea9f23e9.png)

I’ve also tried to set methodOverride to false or true in the config (as I don’t really grasp fully what it does) but it didn’t seem to fix the issue.

* * *

[EDIT]

So it turns out that I needed to broader URLs in condition AND to **bypass WAF** (that I activated in shield) as saving change was detected as an application attack :

![Capture d’écran 2026-09-18 à 12.20.02](https://europe1.discourse-cdn.com/flex017/uploads/getkirby/original/3X/0/9/096e04a05cc27e179fec0463414dc8fad29620b2.png)

**So here’s the working edge rule I found :**

 ![Capture d’écran 2026-09-18 à 12.35.32](https://europe1.discourse-cdn.com/flex017/uploads/getkirby/original/3X/e/5/e592119411238335ada62a584a32c283e42ef73f.png)
