Debugging is just asking “what did I assume that isn’t true?” over and over.
CREATIVITY
CREATIVITY
Nothing in a broken program is mysterious; your picture of it is simply wrong somewhere. The work is not cleverness but a patient hunt for the thing you took for granted, the file you were sure had saved, the value you were sure was a number. Every fix is a small correction to something you believed.
When it will not work, write down three things you are certain about and test each one instead of trusting it. The surprise is usually in the one you nearly skipped. The same move works on arguments and plans, not only code.
In your current stuck problem, what are you assuming without checking?
Free, with nothing to buy inside it.