Claude Opus5.5 found a bug :
My earlier fix for Serial commands put the SDK’s WiFiServer into non-blocking mode. That mode has a bug in get_available() (in the SDK’s ard_socket.c):
- loop() checks for an HTTP client every ~5 ms. When nobody is connecting, the low-level accept fails with “try again later”, which is normal for non-blocking mode.
- To read that reason, the SDK calls get_sock_errno(). For non-blocking sockets it always returns 0 instead of “try again later”.
- So get_available() treats a normal “no client yet” as a real failure and prints [ERROR] get_available Accept connection failed. That happens on every pass of loop(), hundreds of times a second.
You see it because the board menu setting Tools → Arduino: API logs defaults to Enable all. The SDK can only block the loop or spam this message; it has no quiet non-blocking option.