Querying Todos with Designs with GraphQL result in Internal Error
Summary
GitLab added support for Todos in GraphQL. Seems there is an issue with todos on designs, because when querying for the target type on an todo for a design, in internal error is raised.
Steps to reproduce
- Create a project with a design and then create a todo on it, e.g., by being mentioned on it
- Use GraphQL to perform the following query:
{
currentUser {
todos {
edges {
node {
targetType
}
}
}
}
}
What is the current bug behavior?
Exception is thrown with following log:
GraphQL::EnumType::UnresolvedValueError (Can't resolve enum TodoTargetEnum for "DesignManagement::Design"):
lib/gitlab/graphql/generic_tracing.rb:40:in `with_labkit_tracing'
lib/gitlab/graphql/generic_tracing.rb:30:in `platform_trace'
lib/gitlab/graphql/generic_tracing.rb:40:in `with_labkit_tracing'
lib/gitlab/graphql/generic_tracing.rb:30:in `platform_trace'
app/graphql/gitlab_schema.rb:46:in `execute'
app/controllers/graphql_controller.rb:47:in `execute_query'
app/controllers/graphql_controller.rb:18:in `execute'
ee/lib/gitlab/ip_address_state.rb:10:in `with'
ee/app/controllers/ee/application_controller.rb:46:in `set_current_ip_address'
lib/gitlab/session.rb:11:in `with_session'
app/controllers/application_controller.rb:461:in `set_session_storage'
lib/gitlab/i18n.rb:55:in `with_locale'
lib/gitlab/i18n.rb:61:in `with_user_locale'
app/controllers/application_controller.rb:455:in `set_locale'
lib/gitlab/middleware/rails_queue_duration.rb:27:in `call'
lib/gitlab/metrics/rack_middleware.rb:17:in `block in call'
lib/gitlab/metrics/transaction.rb:62:in `run'
lib/gitlab/metrics/rack_middleware.rb:17:in `call'
lib/gitlab/request_profiler/middleware.rb:17:in `call'
ee/lib/gitlab/jira/middleware.rb:19:in `call'
lib/gitlab/middleware/go.rb:20:in `call'
lib/gitlab/etag_caching/middleware.rb:13:in `call'
lib/gitlab/middleware/correlation_id.rb:16:in `block in call'
lib/gitlab/middleware/correlation_id.rb:15:in `call'
lib/gitlab/middleware/multipart.rb:117:in `call'
lib/gitlab/middleware/read_only/controller.rb:48:in `call'
lib/gitlab/middleware/read_only.rb:18:in `call'
lib/gitlab/middleware/basic_health_check.rb:25:in `call'
lib/gitlab/request_context.rb:32:in `call'
lib/gitlab/metrics/requests_rack_middleware.rb:49:in `call'
lib/gitlab/middleware/release_env.rb:12:in `call'
What is the expected correct behavior?
(What you should see instead)
Output of checks
This bug happens on GitLab.com
Results of GitLab environment info
Tested on GitLab 12.4.0
/cc @pderichs @smcgivern