espressif/idf:release-v5.3 has no Node.js, and actions/checkout (a Node action) runs inside whatever container: the job specifies -- it failed immediately with "node: not found" on the first real run. Checkout now runs on the plain runner; only the two build steps spin up the ESP-IDF image themselves via docker run, using the runner's already-mounted docker socket.