more union work, rebuilding service response error handling to use type unions