Just to add to @fefrei’s explanation, rebuild is unnecessary for this round because you weren’t changing the app.yml, you were invoking Discourse’s internal API which updated the database and thus the next time you attempted to access your Discourse instance, it was able to read force_https as false.
Every bit of the Discourse application runs off of its own internal UI, so every action you can perform in your browser, there are commands you can run to reproduce those exact actions. In times where you lock yourself out, it is really helpful.