CircleCI is a popular platform Continuous integration (CI) and continuous delivery (CD). While its job status reports are already useful, one can do much more insights by debugging it in real time. Here I am sharing a real use-case of debugging a failing job deploing an app 🙂
Failing job are reported in red and the (most of) errors caught during the execution appear in the terminal. In this case, the environment is unable to locate Python:

The error is not very informative. 😮 For more insights, let’s re-run the job in SSH mode:

You will be welcomed with instructions on how to connect via SSH:

CircleCI showing SSH connection string.
Use this instruction to connect to inspect the environment at its failure stage:
mskorski@SHPLC-L0JH Documents % ssh -p 64535 aa.bbb.cc.dd
The authenticity of host '[aa.bbb.cc.dd]:64535 ([aa.bbb.cc.dd]:64535)' can't be established.
ED25519 key fingerprint is SHA256:LsMhHb5fUPLHI9dFdyig4VKw44GTqrA2dkEWT0sZx4k.
Are you sure you want to continue connecting (yes/no)? yes
circleci@bc95bb40fff3:~$ ls project/venv/bin -l
total 300
...
lrwxrwxrwx 1 circleci circleci 7 Aug 1 12:37 python -> python3
lrwxrwxrwx 1 circleci circleci 49 Aug 1 12:37 python3 -> /home/circleci/.pyenv/versions/3.8.13/bin/python3
lrwxrwxrwx 1 circleci circleci 7 Aug 1 12:38 python3.9 -> python3
Bingo! The terminal warns about broken symbolic links:

The solution in this case was to update cache. The issues may be far more complex than that, but being able to debug them live comes to the rescue. 😎