Epic board with existing high maximum relative_position cannot move epic
See https://gitlab.zendesk.com/agent/tickets/350127 and https://gitlab.slack.com/archives/C02E81EM8CE/p1670450331133119 (internal, GitLab team members only) for specific details. Originally raised by @anton
A customer cannot move epics over, and gets the error "An error occurred moving the epic, please try again" in the UI. This is the result of a GraphQL mutation EpicMoveList which is returning 500:
[
{
"operationName":"EpicMoveList",
"variables":{
"epicId":"gid://gitlab/Epic/529",
"boardId":"gid://gitlab/Boards::EpicBoard/213",
"fromListId":"gid://gitlab/Boards::EpicList/1178",
"toListId":"gid://gitlab/Boards::EpicList/1178",
"moveAfterId":"gid://gitlab/Epic/2536"
},
"query":"mutation EpicMoveList($epicId: EpicID!, $boardId: BoardsEpicBoardID!, $fromListId: BoardsEpicListID!, $toListId: BoardsEpicListID!, $moveAfterId: EpicID, $moveBeforeId: EpicID) {\n epicMoveList(\n input: {epicId: $epicId, boardId: $boardId, fromListId: $fromListId, toListId: $toListId, moveAfterId: $moveAfterId, moveBeforeId: $moveBeforeId}\n ) {\n errors\n __typename\n }\n}\n"
}
]
Redacted stack trace:
Exception.message": "2752803144 is out of range for ActiveModel::Type::Integer with limit 4 bytes",
"exception.backtrace": [
"lib/gitlab/database/load_balancing/connection_proxy.rb:120:in `block in write_using_load_balancer'",
"lib/gitlab/database/load_balancing/load_balancer.rb:115:in `block in read_write'",
"lib/gitlab/database/load_balancing/load_balancer.rb:184:in `retry_with_backoff'",
"lib/gitlab/database/load_balancing/load_balancer.rb:111:in `read_write'",
"lib/gitlab/database/load_balancing/connection_proxy.rb:119:in `write_using_load_balancer'",
"lib/gitlab/database/load_balancing/connection_proxy.rb:89:in `method_missing'",
"app/models/concerns/bulk_insert_safe.rb:163:in `block (2 levels) in _bulk_insert_all!'",
"app/models/concerns/bulk_insert_safe.rb:157:in `each'",
"app/models/concerns/bulk_insert_safe.rb:157:in `each_slice'",
"app/models/concerns/bulk_insert_safe.rb:157:in `each'",
"app/models/concerns/bulk_insert_safe.rb:157:in `flat_map'",
"app/models/concerns/bulk_insert_safe.rb:157:in `block in _bulk_insert_all!'",
"app/models/concerns/cross_database_modification.rb:92:in `block in transaction'",
"lib/gitlab/database/load_balancing/connection_proxy.rb:120:in `block in write_using_load_balancer'",
"lib/gitlab/database/load_balancing/load_balancer.rb:115:in `block in read_write'",
"lib/gitlab/database/load_balancing/load_balancer.rb:184:in `retry_with_backoff'",
"lib/gitlab/database/load_balancing/load_balancer.rb:111:in `read_write'",
"lib/gitlab/database/load_balancing/connection_proxy.rb:119:in `write_using_load_balancer'",
"lib/gitlab/database/load_balancing/connection_proxy.rb:71:in `transaction'",
"lib/gitlab/database.rb:332:in `block in transaction'",
"lib/gitlab/database.rb:331:in `transaction'",
"app/models/concerns/cross_database_modification.rb:83:in `transaction'",
"app/models/concerns/bulk_insert_safe.rb:156:in `_bulk_insert_all!'",
"app/models/concerns/bulk_insert_safe.rb:126:in `bulk_upsert!'",
"ee/app/models/boards/epic_board_position.rb:32:in `bulk_upsert'",
"ee/app/services/boards/epics/position_create_service.rb:26:in `execute'",
"ee/app/services/epics/update_service.rb:177:in `fill_missing_positions_before'",
"ee/app/services/epics/update_service.rb:146:in `reposition_on_board'",
"ee/app/services/epics/update_service.rb:17:in `execute'",
"ee/app/services/boards/epics/move_service.rb:11:in `update'",
"app/services/boards/base_item_move_service.rb:57:in `move_single_issuable'",
"app/services/boards/base_item_move_service.rb:11:in `execute'",
"ee/app/graphql/mutations/boards/epic_boards/epic_move_list.rb:70:in `move_epic'",
"ee/app/graphql/mutations/boards/epic_boards/epic_move_list.rb:53:in `resolve'",