Login error in 14.1 -- marshal data too short

I run a self-hosted Gitlab instance (via docker-compose, using https://github.com/sameersbn/docker-gitlab).

I've recently upgraded to Gitlab 14.1.0 and am getting 500 errors for some users logging in (not admin user but at least for a 2FA user).

I see an error in production.log which indicates an unhandled exception:

Started POST "/api/v4/jobs/request" for 35.233.180.168 at 2021-07-27 07:16:33 +1200
Started POST "/api/v4/jobs/request" for 35.233.180.168 at 2021-07-27 07:16:36 +1200
Started POST "/api/v4/jobs/request" for 35.233.180.168 at 2021-07-27 07:16:39 +1200
Started POST "/api/v4/jobs/request" for 35.233.180.168 at 2021-07-27 07:16:42 +1200
Started POST "/api/v4/jobs/request" for 35.233.180.168 at 2021-07-27 07:16:45 +1200
Started POST "/api/v4/jobs/request" for 35.233.180.168 at 2021-07-27 07:16:48 +1200
Started POST "/api/v4/jobs/request" for 35.233.180.168 at 2021-07-27 07:16:51 +1200
Started POST "/api/v4/jobs/request" for 35.233.180.168 at 2021-07-27 07:16:54 +1200
Started POST "/api/v4/jobs/request" for 35.233.180.168 at 2021-07-27 07:16:57 +1200
Started POST "/api/v4/jobs/request" for 35.233.180.168 at 2021-07-27 07:17:00 +1200
Started POST "/users/sign_out" for 203.184.52.52 at 2021-07-27 07:17:00 +1200
Processing by SessionsController#destroy as HTML
  Parameters: {"authenticity_token"=>"[FILTERED]"}
Redirected to https://gitlab.tpwiki.com/users/sign_in
Completed 302 Found in 70ms (ActiveRecord: 4.6ms | Elasticsearch: 0.0ms | Allocations: 11739)
Started GET "/users/sign_in" for 203.184.52.52 at 2021-07-27 07:17:01 +1200
Processing by SessionsController#new as HTML
  Rendered layout layouts/devise.html.haml (Duration: 25.7ms | Allocations: 7366)
Completed 200 OK in 46ms (Views: 26.0ms | ActiveRecord: 1.3ms | Elasticsearch: 0.0ms | Allocations: 12764)
Started POST "/api/v4/jobs/request" for 35.233.180.168 at 2021-07-27 07:17:03 +1200
Started POST "/users/sign_in" for 203.184.52.52 at 2021-07-27 07:17:05 +1200
  
ArgumentError (marshal data too short):
  
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:21:in `call'
config/initializers/fix_local_cache_middleware.rb:11:in `call'
lib/gitlab/middleware/rack_multipart_tempfile_factory.rb:19:in `call'
lib/gitlab/metrics/requests_rack_middleware.rb:74:in `call'
lib/gitlab/middleware/release_env.rb:12:in `call'
Started POST "/api/v4/jobs/request" for 35.233.180.168 at 2021-07-27 07:17:06 +1200
Started GET "/favicon.ico" for 203.184.52.52 at 2021-07-27 07:17:06 +1200
Started POST "/api/v4/jobs/request" for 35.233.180.168 at 2021-07-27 07:17:09 +1200
root@ed06686bd43b:/home/git/gitlab# 

It's nice that token is filtered in the logs BTW. It is possible this is a configuration error on my part or an issue with the image I'm using. Happy to provide additional information.