Jetty HTTP ERROR: 500 with a GET parameter and subsequent requests
See original GitHub issueI’ve been checking out Couchbase’s REST API and would like to record and replay some interactions using WireMock. Unfortunately I’ve encountered an issue where a GET request with a parameter being made multiple times (immediately following the previous) causes Jetty to return a 500 error.
This is the URL I’m GET
ting, proxied to couchbase via WireMock: http://localhost:8442/pools/default?waitChange=0
I’m mostly using the Insomnia REST client to send the request. I’ve determined that the following do not affect the result:
- HTTP request headers
- HTTP request auth
- REST client
--container-threads
amount--jetty-acceptor-threads
amount--jetty-accept-queue-size
amount
In my tests I’ve found that removing the parameter ?waitChange=0
does not reproduce the issue (multiple, subsequent requests can be made as quickly as possible with a valid response). I’ve also found that trying a test parameter (?test=0
) does not reproduce the issue.
The reason I think WireMock is the culprit (as opposed to Couchbase’s REST implementation) is that I can make the same requests directly to Couchbase and get a successful response every time.
Here are the logs and the startup command used to run the server; the problem URI was hit twice for this test, with the second attempt failing:
java -jar /path/to/wiremock-standalone-2.5.1.jar --container-threads 200 --print-all-network-traffic --verbose --https-port 8443 --port 8442 --root-dir /path/to/wiremock-recordings/test-record --proxy-all="http://<my-couchbase-host>:8091" --record-mappings --match-headers="Accept,Content-Type,Cache-Control,Authorization"
2017-03-02 11:11:30.149 Verbose logging enabled
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
2017-03-02 11:11:30.455 Verbose logging enabled
2017-03-02 11:11:30.473 Verbose logging enabled
2017-03-02 11:11:30.512 Recording mappings to /path/to/wiremock-recordings/test-record/mappings
/$$ /$$ /$$ /$$ /$$ /$$
| $$ /$ | $$|__/ | $$$ /$$$ | $$
| $$ /$$$| $$ /$$ /$$$$$$ /$$$$$$ | $$$$ /$$$$ /$$$$$$ /$$$$$$$| $$ /$$
| $$/$$ $$ $$| $$ /$$__ $$ /$$__ $$| $$ $$/$$ $$ /$$__ $$ /$$_____/| $$ /$$/
| $$$$_ $$$$| $$| $$ \__/| $$$$$$$$| $$ $$$| $$| $$ \ $$| $$ | $$$$$$/
| $$$/ \ $$$| $$| $$ | $$_____/| $$\ $ | $$| $$ | $$| $$ | $$_ $$
| $$/ \ $$| $$| $$ | $$$$$$$| $$ \/ | $$| $$$$$$/| $$$$$$$| $$ \ $$
|__/ \__/|__/|__/ \_______/|__/ |__/ \______/ \_______/|__/ \__/
port: 8442
https-port: 8443
https-keystore: jar:file:/path/to/wiremock-standalone-2.5.1.jar!/keystore
proxy-all: http://<my-couchbase-host>:8091
preserve-host-header: false
enable-browser-proxying: false
record-mappings: true
match-headers: [Accept, Content-Type, Cache-Control, Authorization]
no-request-journal: false
verbose: true
2017-03-02 11:11:50.615 Opened Socket[addr=/127.0.0.1,port=60484,localport=8442]
2017-03-02 11:11:50.646 Incoming bytes: GET /pools/default?waitChange=0 HTTP/1.1
Authorization: Basic cm91c2VyOnBhc3N3b3Jk
Accept: */*
User-Agent: insomnia/4.2.14
host: localhost:8442
accept-encoding: gzip, deflate
Connection: keep-alive
2017-03-02 11:11:50.694 Proxying: GET http://<my-couchbase-host>:8091/pools/default?waitChange=0
2017-03-02 11:11:51.001 Request received:
127.0.0.1 - GET /pools/default?waitChange=0
Accept-Encoding: [gzip, deflate]
User-Agent: [insomnia/4.2.14]
Authorization: [Basic cm91c2VyOnBhc3N3b3Jk]
Connection: [keep-alive]
Host: [localhost:8442]
Accept: [*/*]
Matched response definition:
{
"status" : 200,
"proxyBaseUrl" : "http://<my-couchbase-host>:8091"
}
Response:
HTTP/1.1 200
Server: [Couchbase Server]
Pragma: [no-cache]
Date: [Thu, 02 Mar 2017 16:11:57 GMT]
Content-Type: [application/json]
Content-Length: [5860]
Cache-Control: [no-cache]
{"etag":"95119255","clusterName":"","storageTotals":{"ram":{"total":12289662976,"quotaTotal":6442450944,"quotaUsed":6442450944,"used":6740443136,"usedByData":611960684,"quotaUsedPerNode":2147483648,"quotaTotalPerNode":2147483648},"hdd":{"total":222675869696,"quotaTotal":222675869696,"used":2226758696,"usedByData":472303039,"free":0}},"balanced":true,"failoverWarnings":[],"goxdcrEnabled":true,"ldapEnabled":false,"serverGroupsUri":"/pools/default/serverGroups?v=108506564","indexMemoryQuota":256,"memoryQuota":2048,"name":"default","alerts":[],"alertsSilenceURL":"/controller/resetAlerts?token=0&uuid=8e989e84e055a831e614fc877e41a325","nodes":[{"systemStats":{"cpu_utilization_rate":4.556962025316456,"swap_total":6442446848,"swap_used":11964416,"mem_total":3975221248,"mem_free":2175139840},"interestingStats":{"cmd_get":0,"couch_docs_actual_disk_size":151499227,"couch_docs_data_size":122352976,"couch_spatial_data_size":5963158,"couch_spatial_disk_size":5974801,"couch_views_actual_disk_size":6020437,"couch_views_data_size":45636,"curr_items":18085,"curr_items_tot":40985,"ep_bg_fetched":0,"get_hits":0,"mem_used":211950032,"ops":0,"vb_replica_curr_items":22900},"uptime":"1375990","memoryTotal":3975221248,"memoryFree":2175139840,"mcdMemoryReserved":3032,"mcdMemoryAllocated":3032,"couchApiBase":"http://10.77.15.9:8092/","clusterMembership":"active","recoveryType":"none","status":"healthy","otpNode":"ns_1@10.77.15.9","hostname":"10.77.15.9:8091","clusterCompatibility":262145,"version":"4.1.1-5914-community","os":"x86_64-unknown-linux-gnu","ports":{"proxy":11211,"direct":11210},"services":["kv"]},{"systemStats":{"cpu_utilization_rate":8.860759493670885,"swap_total":6442446848,"swap_used":91934720,"mem_total":4019945472,"mem_free":2099113984},"interestingStats":{"cmd_get":0,"couch_docs_actual_disk_size":146480622,"couch_docs_data_size":115802791,"couch_spatial_data_size":6016449,"couch_spatial_disk_size":6028080,"couch_views_actual_disk_size":6073704,"couch_views_data_size":45624,"curr_items":17971,"curr_items_tot":40872,"ep_bg_fetched":0,"get_hits":0,"mem_used":211841656,"ops":0,"vb_replica_curr_items":22901},"uptime":"1375466","memoryTotal":4019945472,"memoryFree":2099113984,"mcdMemoryReserved":3066,"mcdMemoryAllocated":3066,"couchApiBase":"http://<my-couchbase-host>:8092/","clusterMembership":"active","recoveryType":"none","status":"healthy","otpNode":"ns_1@<my-couchbase-host>","thisNode":true,"hostname":"<my-couchbase-host>:8091","clusterCompatibility":262145,"version":"4.1.1-5914-community","os":"x86_64-unknown-linux-gnu","ports":{"proxy":11211,"direct":11210},"services":["index","kv","n1ql"]},{"systemStats":{"cpu_utilization_rate":7.770859277708593,"swap_total":5032693760,"swap_used":2974310400,"mem_total":4294496256,"mem_free":1784737792},"interestingStats":{"cmd_get":0,"couch_docs_actual_disk_size":138140830,"couch_docs_data_size":107413823,"couch_spatial_data_size":6007194,"couch_spatial_disk_size":6019831,"couch_views_actual_disk_size":6065507,"couch_views_data_size":45676,"curr_items":18010,"curr_items_tot":40877,"ep_bg_fetched":0,"get_hits":0,"mem_used":188168996,"ops":0,"vb_replica_curr_items":22869},"uptime":"1375673","memoryTotal":4294496256,"memoryFree":1784737792,"mcdMemoryReserved":3276,"mcdMemoryAllocated":3276,"couchApiBase":"http://<another-couchbase-host>:8092/","clusterMembership":"active","recoveryType":"none","status":"healthy","otpNode":"ns_1@<another-couchbase-host>","hostname":"<another-couchbase-host>:8091","clusterCompatibility":262145,"version":"4.1.1-5914-community","os":"win64","ports":{"proxy":11211,"direct":11210},"services":["index","kv","n1ql"]}],"buckets":{"uri":"/pools/default/buckets?v=80956094&uuid=8e989e84e055a831e614fc877e41a325","terseBucketsBase":"/pools/default/b/","terseStreamingBucketsBase":"/pools/default/bs/"},"remoteClusters":{"uri":"/pools/default/remoteClusters?uuid=8e989e84e055a831e614fc877e41a325","validateURI":"/pools/default/remoteClusters?just_validate=1"},"controllers":{"addNode":{"uri":"/controller/addNodeV2?uuid=8e989e84e055a831e614fc877e41a325"},"rebalance":{"uri":"/controller/rebalance?uuid=8e989e84e055a831e614fc877e41a325"},"failOver":{"uri":"/controller/failOver?uuid=8e989e84e055a831e614fc877e41a325"},"startGracefulFailover":{"uri":"/controller/startGracefulFailover?uuid=8e989e84e055a831e614fc877e41a325"},"reAddNode":{"uri":"/controller/reAddNode?uuid=8e989e84e055a831e614fc877e41a325"},"reFailOver":{"uri":"/controller/reFailOver?uuid=8e989e84e055a831e614fc877e41a325"},"ejectNode":{"uri":"/controller/ejectNode?uuid=8e989e84e055a831e614fc877e41a325"},"setRecoveryType":{"uri":"/controller/setRecoveryType?uuid=8e989e84e055a831e614fc877e41a325"},"setAutoCompaction":{"uri":"/controller/setAutoCompaction?uuid=8e989e84e055a831e614fc877e41a325","validateURI":"/controller/setAutoCompaction?just_validate=1"},"clusterLogsCollection":{"startURI":"/controller/startLogsCollection?uuid=8e989e84e055a831e614fc877e41a325","cancelURI":"/controller/cancelLogsCollection?uuid=8e989e84e055a831e614fc877e41a325"},"replication":{"createURI":"/controller/createReplication?uuid=8e989e84e055a831e614fc877e41a325","validateURI":"/controller/createReplication?just_validate=1"}},"rebalanceStatus":"none","rebalanceProgressUri":"/pools/default/rebalanceProgress","stopRebalanceUri":"/controller/stopRebalance?uuid=8e989e84e055a831e614fc877e41a325","nodeStatusesUri":"/nodeStatuses","maxBucketCount":10,"autoCompactionSettings":{"parallelDBAndViewCompaction":false,"databaseFragmentationThreshold":{"percentage":30,"size":"undefined"},"viewFragmentationThreshold":{"percentage":30,"size":"undefined"},"indexFragmentationThreshold":{"percentage":30}},"tasks":{"uri":"/pools/default/tasks?v=81654723"},"counters":{"rebalance_success":1,"rebalance_start":1},"indexStatusURI":"/indexStatus?v=101727310"}
2017-03-02 11:11:51.005 Recording mappings for /pools/default?waitChange=0
2017-03-02 11:11:51.038 Outgoing bytes: HTTP/1.1 200 OK
Server: Couchbase Server
Pragma: no-cache
Date: Thu, 02 Mar 2017 16:11:57 GMT
Content-Type: application/json
Cache-Control: no-cache
Content-Encoding: gzip
Vary: Accept-Encoding, User-Agent
Transfer-Encoding: chunked
A
2017-03-02 11:11:51.038 Problem decoding network traffic
java.nio.charset.MalformedInputException: Input length = 1
at java.nio.charset.CoderResult.throwException(CoderResult.java:277)
at java.nio.charset.CharsetDecoder.decode(CharsetDecoder.java:798)
at com.github.tomakehurst.wiremock.http.trafficlistener.ConsoleNotifyingWiremockNetworkTrafficListener.outgoing(ConsoleNotifyingWiremockNetworkTrafficListener.java:34)
at com.github.tomakehurst.wiremock.jetty9.JettyHttpServer$NetworkTrafficListenerAdapter.outgoing(JettyHttpServer.java:369)
at wiremock.org.eclipse.jetty.io.NetworkTrafficSelectChannelEndPoint.notifyOutgoing(NetworkTrafficSelectChannelEndPoint.java:144)
at wiremock.org.eclipse.jetty.io.NetworkTrafficSelectChannelEndPoint.flush(NetworkTrafficSelectChannelEndPoint.java:65)
at wiremock.org.eclipse.jetty.io.WriteFlusher.flush(WriteFlusher.java:408)
at wiremock.org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:302)
at wiremock.org.eclipse.jetty.io.AbstractEndPoint.write(AbstractEndPoint.java:129)
at wiremock.org.eclipse.jetty.server.HttpConnection$SendCallback.process(HttpConnection.java:676)
at wiremock.org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:246)
at wiremock.org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:208)
at wiremock.org.eclipse.jetty.server.HttpConnection.send(HttpConnection.java:471)
at wiremock.org.eclipse.jetty.server.HttpChannel.sendResponse(HttpChannel.java:763)
at wiremock.org.eclipse.jetty.server.HttpChannel.write(HttpChannel.java:801)
at wiremock.org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:147)
at wiremock.org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:140)
at wiremock.org.eclipse.jetty.server.HttpOutput.flush(HttpOutput.java:242)
at java.io.FilterOutputStream.flush(FilterOutputStream.java:140)
at wiremock.org.eclipse.jetty.servlets.gzip.AbstractCompressedStream.flush(AbstractCompressedStream.java:125)
at com.github.tomakehurst.wiremock.servlet.WireMockHandlerDispatchingServlet.writeAndTranslateExceptions(WireMockHandlerDispatchingServlet.java:165)
at com.github.tomakehurst.wiremock.servlet.WireMockHandlerDispatchingServlet.applyResponse(WireMockHandlerDispatchingServlet.java:154)
at com.github.tomakehurst.wiremock.servlet.WireMockHandlerDispatchingServlet$ServletHttpResponder.respond(WireMockHandlerDispatchingServlet.java:121)
at com.github.tomakehurst.wiremock.http.AbstractRequestHandler.handle(AbstractRequestHandler.java:63)
at com.github.tomakehurst.wiremock.servlet.WireMockHandlerDispatchingServlet.service(WireMockHandlerDispatchingServlet.java:100)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at wiremock.org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:808)
at wiremock.org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1669)
at wiremock.org.eclipse.jetty.servlets.UserAgentFilter.doFilter(UserAgentFilter.java:83)
at wiremock.org.eclipse.jetty.servlets.GzipFilter.doFilter(GzipFilter.java:364)
at wiremock.org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
at wiremock.org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585)
at wiremock.org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)
at wiremock.org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
at wiremock.org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)
at wiremock.org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at wiremock.org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:110)
at wiremock.org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
at wiremock.org.eclipse.jetty.server.Server.handle(Server.java:499)
at wiremock.org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310)
at wiremock.org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)
at wiremock.org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540)
at wiremock.org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
at wiremock.org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
at java.lang.Thread.run(Thread.java:745)
2017-03-02 11:11:51.043 Outgoing bytes:
686
2017-03-02 11:11:51.044 Problem decoding network traffic
java.nio.charset.MalformedInputException: Input length = 1
at java.nio.charset.CoderResult.throwException(CoderResult.java:277)
at java.nio.charset.CharsetDecoder.decode(CharsetDecoder.java:798)
at com.github.tomakehurst.wiremock.http.trafficlistener.ConsoleNotifyingWiremockNetworkTrafficListener.outgoing(ConsoleNotifyingWiremockNetworkTrafficListener.java:34)
at com.github.tomakehurst.wiremock.jetty9.JettyHttpServer$NetworkTrafficListenerAdapter.outgoing(JettyHttpServer.java:369)
at wiremock.org.eclipse.jetty.io.NetworkTrafficSelectChannelEndPoint.notifyOutgoing(NetworkTrafficSelectChannelEndPoint.java:144)
at wiremock.org.eclipse.jetty.io.NetworkTrafficSelectChannelEndPoint.flush(NetworkTrafficSelectChannelEndPoint.java:65)
at wiremock.org.eclipse.jetty.io.WriteFlusher.flush(WriteFlusher.java:408)
at wiremock.org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:302)
at wiremock.org.eclipse.jetty.io.AbstractEndPoint.write(AbstractEndPoint.java:129)
at wiremock.org.eclipse.jetty.server.HttpConnection$SendCallback.process(HttpConnection.java:684)
at wiremock.org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:246)
at wiremock.org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:208)
at wiremock.org.eclipse.jetty.server.HttpConnection.send(HttpConnection.java:480)
at wiremock.org.eclipse.jetty.server.HttpChannel.sendResponse(HttpChannel.java:768)
at wiremock.org.eclipse.jetty.server.HttpChannel.write(HttpChannel.java:801)
at wiremock.org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:147)
at wiremock.org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:140)
at wiremock.org.eclipse.jetty.server.HttpOutput.close(HttpOutput.java:171)
at wiremock.org.eclipse.jetty.servlets.gzip.DeflatedOutputStream.close(DeflatedOutputStream.java:96)
at wiremock.org.eclipse.jetty.servlets.gzip.AbstractCompressedStream.close(AbstractCompressedStream.java:162)
at com.github.tomakehurst.wiremock.servlet.WireMockHandlerDispatchingServlet.writeAndTranslateExceptions(WireMockHandlerDispatchingServlet.java:166)
at com.github.tomakehurst.wiremock.servlet.WireMockHandlerDispatchingServlet.applyResponse(WireMockHandlerDispatchingServlet.java:154)
at com.github.tomakehurst.wiremock.servlet.WireMockHandlerDispatchingServlet$ServletHttpResponder.respond(WireMockHandlerDispatchingServlet.java:121)
at com.github.tomakehurst.wiremock.http.AbstractRequestHandler.handle(AbstractRequestHandler.java:63)
at com.github.tomakehurst.wiremock.servlet.WireMockHandlerDispatchingServlet.service(WireMockHandlerDispatchingServlet.java:100)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at wiremock.org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:808)
at wiremock.org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1669)
at wiremock.org.eclipse.jetty.servlets.UserAgentFilter.doFilter(UserAgentFilter.java:83)
at wiremock.org.eclipse.jetty.servlets.GzipFilter.doFilter(GzipFilter.java:364)
at wiremock.org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
at wiremock.org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585)
at wiremock.org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)
at wiremock.org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
at wiremock.org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)
at wiremock.org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at wiremock.org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:110)
at wiremock.org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
at wiremock.org.eclipse.jetty.server.Server.handle(Server.java:499)
at wiremock.org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310)
at wiremock.org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)
at wiremock.org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540)
at wiremock.org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
at wiremock.org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
at java.lang.Thread.run(Thread.java:745)
2017-03-02 11:11:51.046 Outgoing bytes:
0
2017-03-02 11:11:51.685 Incoming bytes: GET /pools/default?waitChange=0 HTTP/1.1
Authorization: Basic cm91c2VyOnBhc3N3b3Jk
Accept: */*
User-Agent: insomnia/4.2.14
host: localhost:8442
accept-encoding: gzip, deflate
Connection: keep-alive
2017-03-02 11:11:51.686 Proxying: GET http://<my-couchbase-host>:8091/pools/default?waitChange=0
2017-03-02 11:11:51.689 Outgoing bytes: HTTP/1.1 500 Server Error
Cache-Control: must-revalidate,no-cache,no-store
Content-Type: text/html; charset=ISO-8859-1
Content-Length: 395
Connection: close
Server: Jetty(9.2.z-SNAPSHOT)
2017-03-02 11:11:51.690 Outgoing bytes: <html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/>
<title>Error 500 </title>
</head>
<body>
<h2>HTTP ERROR: 500</h2>
<p>Problem accessing /pools/default. Reason:
<pre> java.lang.RuntimeException: wiremock.org.apache.http.NoHttpResponseException: The target server failed to respond</pre></p>
<hr /><i><small>Powered by Jetty://</small></i>
</body>
</html>
2017-03-02 11:11:51.691 Closed Socket[addr=/127.0.0.1,port=60484,localport=8442]
2017-03-02 11:11:51.692 Closed Socket[addr=/127.0.0.1,port=60484,localport=8442]
Issue Analytics
- State:
- Created 7 years ago
- Comments:11 (7 by maintainers)
In my case, we received error “Problem decoding network traffic java.nio.charset.MalformedInputException: Input length = 1” because of GZIP compression that resulted into malformed response on latest WireMock image.
The fix was to disable GZIP compression by adding following parameter to WIREMOCK_OPTIONS:
Here is the same in Postman, just to support that Insomnia is not affecting the result:
Again, the procedure for this test was:
GET /pools/default?waitChange=0
GET /settings/autoFailover