Well, it depends on the contract we want to give to the method. My reasoning was that, a non-existent changeset ID at this context is nothing "exceptional" as it could be used by any other higher-level code which may as well expect it to return nothing. However, within the Unshelve command we **need** a valid changeset to continue, so we bail out if none is returned.

Apart from that, if we throw at the point of getting a changeset from the ID there wouldn't be enough information to report a very useful message to the user as we are missing context.

I hope it makes sense :smile: