If a Screen ID is deleted, and one then try to show a Worspace using it, Blender will crash.
Setting to low prio since deleting a Screen ID is not easy to do for end user currently (you'll have to use py console, e.g. bpy.data.batch_remove(ids=(bpy.data.screens,))), but still, this is violating general design and expected sane behavior of ID handling.
Think solution should be either:
- Deleting Screens IDs should be forbidden (not ideal, since it kind of breaks general ID design, but should be doable).
- Deleting Screens IDs should also delete matching Workspace (not ideal either, there should not be that kind of relationships between IDs, but we already have similar things between objects and obdata...).
- Or (probably the sanest thing to do) a Workspace should handle gracefully the case where it has no assigned Screen.