Environments page does not show Environments
Summary
Customer filed a ticket reporting that they are not able to view a project's Environments on the Environments page; the API shows the environments as expected. Attempting to check for protected_environments in an impacted project also fails with a 500 error.
Steps to reproduce
- Navigate to the Environments page of an impacted project.
- See the welcome page in place of the list of environments.
- Check the
environmentsAPI response for the project and verify that at least one environment is present. - Call
protected_environmentson the same project and get a500 Internal Server Error.
Example Project
Was not able to reproduce in a test project
What is the current bug behavior?
Unable to view project Environments
What is the expected correct behavior?
Environments should be displayed
Relevant logs and/or screenshots
This Kibana search shows impacted customers. This seems to have increased recently.
Stack traces from Kibana:
Accessing from /-/environments page:
ee/app/models/protected_environments/authorizable.rb:37:in `check_access',
ee/app/models/protected_environment.rb:95:in `block in accessible_to?',
ee/app/models/protected_environment.rb:95:in `accessible_to?',
ee/app/models/ee/environment.rb:138:in `block (2 levels) in protected_environment_accesses',
ee/app/models/ee/environment.rb:137:in `each',
ee/app/models/ee/environment.rb:137:in `group_by',
ee/app/models/ee/environment.rb:137:in `block in protected_environment_accesses',
lib/gitlab/safe_request_store.rb:12:in `fetch',
ee/app/models/ee/environment.rb:136:in `protected_environment_accesses',
ee/app/models/ee/environment.rb:76:in `protected_from?',
ee/app/policies/ee/environment_policy.rb:8:in `block (2 levels) in <module:EnvironmentPolicy>',
app/models/ability.rb:88:in `allowed?',
lib/gitlab/allowable.rb:6:in `can?',
app/serializers/environment_entity.rb:86:in `can_update_environment?',
app/serializers/environment_entity.rb:42:in `block in <class:EnvironmentEntity>',
app/serializers/base_serializer.rb:16:in `represent',
app/serializers/concerns/with_pagination.rb:21:in `represent',
app/serializers/environment_serializer.rb:23:in `block in represent',
app/serializers/environment_serializer.rb:20:in `map',
app/serializers/environment_serializer.rb:20:in `represent',
app/controllers/projects/environments_controller.rb:289:in `serialize_environments',
app/controllers/projects/environments_controller.rb:56:in `block (2 levels) in index',
app/controllers/projects/environments_controller.rb:48:in `index',
ee/lib/gitlab/ip_address_state.rb:10:in `with',
ee/app/controllers/ee/application_controller.rb:45:in `set_current_ip_address',
app/controllers/application_controller.rb:500:in `set_current_admin',
lib/gitlab/session.rb:11:in `with_session',
app/controllers/application_controller.rb:491:in `set_session_storage',
lib/gitlab/i18n.rb:107:in `with_locale',
lib/gitlab/i18n.rb:113:in `with_user_locale',
app/controllers/application_controller.rb:482:in `set_locale',
app/controllers/application_controller.rb:475:in `set_current_context',
ee/lib/omni_auth/strategies/group_saml.rb:41:in `other_phase',
lib/gitlab/metrics/elasticsearch_rack_middleware.rb:16:in `call',
lib/gitlab/middleware/memory_report.rb:13:in `call',
lib/gitlab/middleware/speedscope.rb:13:in `call',
lib/gitlab/database/load_balancing/rack_middleware.rb:23:in `call',
lib/gitlab/middleware/rails_queue_duration.rb:33:in `call',
lib/gitlab/metrics/rack_middleware.rb:16:in `block in call',
lib/gitlab/metrics/web_transaction.rb:46:in `run',
lib/gitlab/metrics/rack_middleware.rb:16:in `call',
lib/gitlab/jira/middleware.rb:19:in `call',
lib/gitlab/middleware/go.rb:20:in `call',
lib/gitlab/etag_caching/middleware.rb:33:in `call',
lib/gitlab/middleware/query_analyzer.rb:11:in `block in call',
lib/gitlab/database/query_analyzer.rb:37:in `within',
lib/gitlab/middleware/query_analyzer.rb:11:in `call',
lib/gitlab/middleware/multipart.rb:173:in `call',
lib/gitlab/middleware/read_only/controller.rb:50:in `call',
lib/gitlab/middleware/read_only.rb:18:in `call',
lib/gitlab/middleware/same_site_cookies.rb:27:in `call',
lib/gitlab/middleware/basic_health_check.rb:25:in `call',
lib/gitlab/middleware/handle_malformed_strings.rb:21:in `call',
lib/gitlab/middleware/handle_ip_spoof_attack_error.rb:25:in `call',
lib/gitlab/middleware/request_context.rb:15:in `call',
lib/gitlab/middleware/webhook_recursion_detection.rb:15:in `call',
config/initializers/fix_local_cache_middleware.rb:11:in `call',
lib/gitlab/middleware/compressed_json.rb:45:in `call',
lib/gitlab/middleware/rack_multipart_tempfile_factory.rb:19:in `call',
lib/gitlab/middleware/sidekiq_web_static.rb:20:in `call',
lib/gitlab/metrics/requests_rack_middleware.rb:79:in `call',
lib/gitlab/middleware/release_env.rb:13:in `call'
Query protected_environments via API:
ee/app/models/protected_environments/authorizable.rb:71:in `humanize',
lib/api/entities/protected_ref_access.rb:10:in `block in <class:ProtectedRefAccess>',
lib/gitlab/json.rb:130:in `dump',
lib/gitlab/json.rb:130:in `adapter_dump',
lib/gitlab/json.rb:52:in `dump',
lib/gitlab/json.rb:194:in `call',
ee/lib/gitlab/middleware/ip_restrictor.rb:14:in `block in call',
ee/lib/gitlab/ip_address_state.rb:10:in `with',
ee/lib/gitlab/middleware/ip_restrictor.rb:13:in `call',
lib/api/api_guard.rb:222:in `call',
ee/lib/omni_auth/strategies/group_saml.rb:41:in `other_phase',
lib/gitlab/metrics/elasticsearch_rack_middleware.rb:16:in `call',
lib/gitlab/middleware/memory_report.rb:13:in `call',
lib/gitlab/middleware/speedscope.rb:13:in `call',
lib/gitlab/database/load_balancing/rack_middleware.rb:23:in `call',
lib/gitlab/middleware/rails_queue_duration.rb:33:in `call',
lib/gitlab/metrics/rack_middleware.rb:16:in `block in call',
lib/gitlab/metrics/web_transaction.rb:46:in `run',
lib/gitlab/metrics/rack_middleware.rb:16:in `call',
lib/gitlab/jira/middleware.rb:19:in `call',
lib/gitlab/middleware/go.rb:20:in `call',
lib/gitlab/etag_caching/middleware.rb:21:in `call',
lib/gitlab/middleware/query_analyzer.rb:11:in `block in call',
lib/gitlab/database/query_analyzer.rb:37:in `within',
lib/gitlab/middleware/query_analyzer.rb:11:in `call',
lib/gitlab/middleware/multipart.rb:173:in `call',
lib/gitlab/middleware/read_only/controller.rb:50:in `call',
lib/gitlab/middleware/read_only.rb:18:in `call',
lib/gitlab/middleware/same_site_cookies.rb:27:in `call',
lib/gitlab/middleware/basic_health_check.rb:25:in `call',
lib/gitlab/middleware/handle_malformed_strings.rb:21:in `call',
lib/gitlab/middleware/handle_ip_spoof_attack_error.rb:25:in `call',
lib/gitlab/middleware/request_context.rb:15:in `call',
lib/gitlab/middleware/webhook_recursion_detection.rb:15:in `call',
config/initializers/fix_local_cache_middleware.rb:11:in `call',
lib/gitlab/middleware/compressed_json.rb:45:in `call',
lib/gitlab/middleware/rack_multipart_tempfile_factory.rb:19:in `call',
lib/gitlab/middleware/sidekiq_web_static.rb:20:in `call',
lib/gitlab/metrics/requests_rack_middleware.rb:79:in `call',
lib/gitlab/middleware/release_env.rb:13:in `call'
Output of checks
Reproduced on GitLab Enterprise Edition 16.1.0-pre c26d3e3f
