https://github.com/pulp/pulp/pull/517
The CallReport.progress is initialized as "progress or {}". So, {} is a valid value for the progress. After reproducing, I was able to verify that the agent is not passing an invalid progress report. Instead, we see this error when the CLI polls the tasks and attempts to render the progress before it is ever updated by the agent. In light of this, I believe it's safe to only render the progress report when it's not None or {}.
Note: We're only fixing the KeyError on 'steps' here.