Apparently for some people interactions with software fall into a binary universe: one side is graceful, the other is anything else that crashes, burns, or otherwise presents the user with an error message or stack trace.
To use a metaphor that describes the problem we were discussing without actually being in the same subject domain at all – imagine you had a tool that let you arrange furniture in a room. So you pick a room, and then create and arrange furniture. Only some rooms you can’t create furniture in – you can start to create an item, but there aren’t any valid choices for color! So you can’t ever really save the room, and your time has been wasted. Do you think that’s graceful because it didn’t crash? Or would graceful have been not letting you pick that type of room in the first place?
To someone’s suggestion that our current design is not so graceful comes the response, “Its graceful, I mean it doesn’t bomb out”.
Granted, there are always time/cost tradeoffs particularly around edge cases like this one, but this discussion didn’t even delve into that.