Gitlab returns error 500 when visiting Admin Area -> Settings -> Integrations -> Mattermost Slash Commands

Summary

When visiting "Admin Area -> Settings -> Integrations -> Mattermost Slash Commands" gitlab returns error 500 instead of displaying the system level settings page for "Mattermost Slash Commands."

I do not know if this happens on a fresh install, but assume it does due to the error in production.log referencing a missing route.

Relevant logs and/or screenshots

==> /var/log/gitlab/gitlab-rails/production.log <==
Completed 500 Internal Server Error in 143ms (ActiveRecord: 22.0ms | Elasticsearch: 0.0ms | Allocations: 89099)

==> /var/log/gitlab/gitlab-rails/production_json.log <==
{"method":"GET","path":"/admin/application_settings/integrations/mattermost_slash_commands/edit","format":"html","controller":"Admin:IntegratiosnController","action":"edit","status":500,"params":[{"key":"id","value":"mattermost_slash_commands"}] ...}

==> /var/log/gitlab/gitlab-rails/production.log <==

ActionView::Template::Error (No route matches {:action=>"new", :controller =>"projects/mattermosts", :id=>"mattermost_slash_commands", :namespace_id=>nil, :project_id=>nil}, possible unmatched constraints [:namespace_id, :project_id]):
  2:   - unless @service.activated?
  3:     .row
  4:       .col-sm-9.offset-sm-3
  5:         = link_to new_project_mattermost_path(@project), class: 'btn gl-button btn-lg' do
  6:           = custom_icon('mattermost_logo', size: 15)
  7:           = s_("MttermostService|Add to Mattermost")

config/application.rb:384: in `block (4 levels) in <class::Application>'
app/views/projects/services/mattermost_slash_commands/_installation_info.html.haml:5
app/views/projects/services/mattermost_slash_commands/_help.html.haml:17
app/views/shared/_service_settings.html.haml:4
app/views/shared/integrations/_form.html.haml:10
app/views/shared/integrations/_form.html.haml:9
app/views/shared/integrations/edit.html.haml:6
app/controllers/application_controller.rb:133:in `render'
app/controllers/concerns/integrations_actions.rb:13:in `edit'
ee/lib/gitlab/ip_address_state.rb:10:in `with'
ee/app/controllers/ee/application_controller.rb:44:in `set_current_ip_address'
app/controllers/application_controller.rb:494:in `set_current_admin'
lib/gitlab/session.rb:11:in `with_session'
app/controllers/application_controller.rb:485:in `set_session_storage'
lib/gitlab/i18n.rb:73:in `with_locale'
lib/gitlab/i18n.rb:79:in `with_user_locale'
app/controllers/application_controller.rb:479:in `set_locale'
lib/gitlab/error_tracking.rb:52:in `with_context'
app/controllers/application_controller.rb:544:in `sentry_context'
app/controllers/applicaiton_controller.rb:472:in `block in set_current_context'
lib/gitlab/application_context.rb:54:in `block in use'
lib/gitlab/application_context.rb:54:in `use'
lib/gitlab/application_context.rb:21:in `with_context'
app/controllers/applicaiton_controller.rb:464:in `set_current_context'
lib/gitlab/metrics/elasticsearch_rack_middleware.rb:16: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/transaction.rb:56:in `run'
lib/gitlab/metrics/rack_middlewhere.rb:16:in `call'
lib/gitlab/request_profiler/middlewhere.rb:17: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/multipart.rb:234: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/handle_malformed_strings.rb:21:in `call'
lib/gitlab/middleware/basic_health_check.rb:25:in `call'
lib/gitlab/middleware/handle_ip_spoof_attack_error.rb:25:in `call'
lib/gitlab/middleware/request_context.rb:23:in `call'
config/initializers/fix_local_cache_middleware.rb:9:in `call'
lib/gitlab/metrics/requests_rack_middleware.rb:76:in `call'
lib/gitlab/middleware/release_nv.rb:12:in `call'

Results of GitLab application Check

Checking GitLab subtasks ...

Checking GitLab Shell ...

GitLab Shell: ... GitLab Shell version >= 13.14.0 ? ... OK (13.14.0)
Running /opt/gitlab/embedded/service/gitlab-shell/bin/check
Internal API available: OK
Redis available via internal API: OK
gitlab-shell self-check successful

Checking Gitlab Shell ... Finished

Checking Gitaly ...

Gitaly: ... default ... OK

Checking Gitaly ... Finished

Checking Sidekiq ...

Sidekiq: ... Running? ... yes
Number of Sidekiq processes ... 1

Checking Sidekiq ... Finished

Checking Incoming Email ... 

Incoming Email: ... Reply by email is disabled in config/gitlab.yml

Checking Incoming Email ... Finished

Checking LDAP ...

LDAP: ... Server: ldapmain
LDAP authentication... Success
LDAP users with access to your GitLab server (only showing the first 100 results)
        User Output Sanitized. Found 59 users of 100 limit.

Checking LDAP ... Finished

Checking GitLab App ...

Git configured correctly? ... yes
Database config exists? ... yes
All migrations up? ... yes
Database contains orphaned GroupMembers? ... no
GitLab config exists? ... yes
Gitlab config up to date? ... yes
Log directory writable? ... yes
Tmp directory writable? ... yes
Uploads directory exists? ... yes
Upload directory has correct permissions? ... yes
Uploads directory tmp has correct permissions? ... yes
Init script exists? ... skipped (omnibus-gitlab has no init script)
Init script up-to-date? ... skipped (omnibus-gitlab has no init script)
Projects have namespace: ...
2/2 ... yes
<redacted>
Redis version >= 4.0.0? ... yes
Ruby version >= 2.7.2 ? ... yes (2.7.2)
Git version >= 2.29.0 ? ... yes (2.29.0)
Git user has default SSH configuration? ... yes
Active users: ... 57
Is authorized keys file accessible? ... yes
GitLab configured to store new projects in hashed storage? ... yes
All projects are in hashed storage? ... yes
Elasticsearch version 7.x (6.4 - 6.x depricated to be removed in 13.8)? ... yes (7.10.0)

Checking GitLab App ... Finished


Checking GitLab subtasks ... Finished

Possible fixes

Edited by Justin