undefined method `fetch' for nil:NilClass during import from Bitbucket

Summary

Customer Ticket: ZD Ticket - internal link

Import from Bitbucket is reporting:

undefined method `fetch' for nil:NilClass on lib/bitbucket/representation/pull_request.rb:7:in `author'

Steps to reproduce

Attempt to import specific customer project from Bitbucket to GitLab.com.

What is the current bug behavior?

During import the following error is logged:

undefined method `fetch' for nil:NilClass

lib/bitbucket/representation/pull_request.rb:7:in `author',
 lib/gitlab/bitbucket_import/importer.rb:188:in `import_pull_request',
 lib/gitlab/bitbucket_import/importer.rb:182:in `block in import_pull_requests',
 lib/bitbucket/collection.rb:8:in `<<',
 lib/bitbucket/collection.rb:8:in `block (3 levels) in initialize',
 lib/bitbucket/collection.rb:8:in `each',
 lib/bitbucket/collection.rb:8:in `block (2 levels) in initialize',
 lib/bitbucket/collection.rb:7:in `loop',
 lib/bitbucket/collection.rb:7:in `block in initialize',
 lib/gitlab/bitbucket_import/importer.rb:181:in `each',
 lib/gitlab/bitbucket_import/importer.rb:181:in `each',
 lib/gitlab/bitbucket_import/importer.rb:181:in `import_pull_requests',
 lib/gitlab/bitbucket_import/importer.rb:25:in `execute',
 app/services/projects/import_service.rb:137:in `import_data',
 app/services/projects/import_service.rb:25:in `execute',
 app/workers/repository_import_worker.rb:28:in `perform',
 ee/app/workers/ee/repository_import_worker.rb:9:in `perform',
 lib/gitlab/database/load_balancing/sidekiq_server_middleware.rb:26:in `call',
 lib/gitlab/sidekiq_middleware/duplicate_jobs/strategies/until_executing.rb:16:in `perform',
 lib/gitlab/sidekiq_middleware/duplicate_jobs/duplicate_job.rb:44:in `perform',
 lib/gitlab/sidekiq_middleware/duplicate_jobs/server.rb:8:in `call',
 lib/gitlab/sidekiq_middleware/worker_context.rb:9:in `wrap_in_optional_context',
 lib/gitlab/sidekiq_middleware/worker_context/server.rb:19:in `block in call',
 lib/gitlab/application_context.rb:118:in `block in use',
 lib/gitlab/application_context.rb:118:in `use',
 lib/gitlab/application_context.rb:57:in `with_context',
 lib/gitlab/sidekiq_middleware/worker_context/server.rb:17:in `call',
 lib/gitlab/sidekiq_status/server_middleware.rb:7:in `call',
 lib/gitlab/sidekiq_versioning/middleware.rb:9:in `call',
 lib/gitlab/sidekiq_middleware/query_analyzer.rb:7:in `block in call',
 lib/gitlab/database/query_analyzer.rb:37:in `within',
 lib/gitlab/sidekiq_middleware/query_analyzer.rb:7:in `call',
 lib/gitlab/sidekiq_middleware/admin_mode/server.rb:14:in `call',
 lib/gitlab/sidekiq_middleware/instrumentation_logger.rb:9:in `call',
 lib/gitlab/sidekiq_middleware/batch_loader.rb:7:in `call',
 lib/gitlab/sidekiq_middleware/extra_done_log_metadata.rb:7:in `call',
 lib/gitlab/sidekiq_middleware/request_store_middleware.rb:10:in `block in call',
 lib/gitlab/with_request_store.rb:17:in `enabling_request_store',
 lib/gitlab/with_request_store.rb:10:in `with_request_store',
 lib/gitlab/sidekiq_middleware/request_store_middleware.rb:9:in `call',
 lib/gitlab/sidekiq_middleware/server_metrics.rb:76:in `block in call',
 lib/gitlab/sidekiq_middleware/server_metrics.rb:103:in `block in instrument',
 lib/gitlab/metrics/background_transaction.rb:33:in `run',
 lib/gitlab/sidekiq_middleware/server_metrics.rb:103:in `instrument',
 lib/gitlab/sidekiq_middleware/server_metrics.rb:75:in `call',
 lib/gitlab/sidekiq_middleware/monitor.rb:10:in `block in call',
 lib/gitlab/sidekiq_daemon/monitor.rb:46:in `within_job',
 lib/gitlab/sidekiq_middleware/monitor.rb:9:in `call',
 lib/gitlab/sidekiq_middleware/size_limiter/server.rb:13:in `call',
 lib/gitlab/sidekiq_logging/structured_logger.rb:21:in `call'

It is unclear at this time what the full impact is, or what the root cause may be (ghost users perhaps?) as currently the import does not complete. Regardless, this error should be handled.

What is the expected correct behavior?

Complete and full import of Bitbucket project without error.

Relevant logs and/or screenshots

Also mentioned in #409447 (closed), however this is a clear code issue that needs to be addressed, hence separating out.

Edited by Ben Prescott (ex-GitLab)