Todo dashboard SAML Reauth fails when todo belongs to project in a user namespace
Related to #396592 (closed)
After enabling the feature flag for GitLab team members, a person experienced a 500 error. The root cause was one todo belongs to a project that is in a user namespace. Thus, todo.project.group
produced nil
. Then we tried to send that nil value to the group root ancestor preloader. We detail the debugging process in an internal note at #396592 (comment 1357664249)
The issue occurs at https://gitlab.com/gitlab-org/gitlab/-/blob/463c9ebee3982f43def4ca0584f8d428cda5e801/ee/app/helpers/ee/todos_helper.rb#L25. The resulting array then contains a nil
value which is sent on to the SSO enforcer, and then the preloader.
The fix is to compact the array - we don't need to worry about todos belonging to projects in the user namespace so we just remove them from the array.
Of note, we should also uniq
the array at this juncture as we noted in the debug process that in this user's case almost all of the todos were for the same group. Uniquing will save us some performance.