<!--
Hi there - thanks for filing an issue. Please ensure the following things …before creating an issue - thank you! 🤓
Since november 15th we handle all requests, except real bugs, at our community board.
Full explanation: https://community.zammad.org/t/major-change-regarding-github-issues-community-board/21
Please post:
- Feature requests
- Development questions
- Technical questions
on the board -> https://community.zammad.org !
If you think you hit a bug, please continue:
- Search existing issues and the CHANGELOG.md for your issue - there might be a solution already
- Make sure to use the latest version of Zammad if possible
- Add the `log/production.log` file from your system. Attention: Make sure no confidential data is in it!
- Please write the issue in english
- Don't remove the template - otherwise we will close the issue without further comments
- Ask questions about Zammad configuration and usage at our mailinglist. See: https://zammad.org/participate
Note: We always do our best. Unfortunately, sometimes there are too many requests and we can't handle everything at once. If you want to prioritize/escalate your issue, you can do so by means of a support contract (see https://zammad.com/pricing#selfhosted).
* The upper textblock will be removed automatically when you submit your issue *
-->
### Infos:
* Used Zammad version: 4.1/stable
* Installation method (source, package, ..): any
* Operating system: any
* Database + version: any
* Elasticsearch version: any
* Browser + version: any, verified on Google Chrome 91.0.4472.124
* Note: This issue was originally found by community member `DeamonMV`: https://community.zammad.org/t/change-order-of-answers-in-glossary-end-with-an-error/7176
### Expected behavior:
Sorting of answers within a KB category always works, even if you have a lot of answers.
### Actual behavior:
Sorting of answers within a KB category stops working as soon as you have pagination kicking in.
Traceback:
```
I, [2021-07-16T15:14:45.153370 #16153-87735880] INFO -- : Started PATCH "/api/v1/knowledge_bases/1/categories/1/reorder_answers" for 195.201.98.123 at 2021-07-16 15:14:45 +0200
I, [2021-07-16T15:14:45.160400 #16153-87735880] INFO -- : Processing by KnowledgeBase::CategoriesController#reorder_answers as JSON
I, [2021-07-16T15:14:45.160831 #16153-87735880] INFO -- : Parameters: {"ordered_ids"=>[1, 2, 3, 4, 5, 6, 12, 7, 8, 9, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 30, 26, 27, 28, 29, 31, 32, 33, 34, 35, 36, 37, 38, 39, 45, 40, 41, 42, 43, 44, 46, 47, 48, 49, 50, 51, 52, 53, 54, 59, 55, 56, 57, 58, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 82, 78, 79, 80, 81, 83, 84, 85, 89, 86, 87, 88, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 142, 141, 143, 144, 145, 146, 147, 148, 152, 151, 149, 150], "knowledge_base_id"=>"1", "id"=>"1"}
E, [2021-07-16T15:14:45.177362 #16153-87735880] ERROR -- : Provide position of all items in scope (Exceptions::UnprocessableEntity)
/opt/zammad/app/controllers/knowledge_base/categories_controller.rb:23:in `reorder'
/opt/zammad/app/controllers/knowledge_base/categories_controller.rb:15:in `reorder_answers'
/usr/local/rvm/gems/ruby-2.6.6/gems/actionpack-5.2.4.6/lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'
/usr/local/rvm/gems/ruby-2.6.6/gems/actionpack-5.2.4.6/lib/abstract_controller/base.rb:194:in `process_action'
/usr/local/rvm/gems/ruby-2.6.6/gems/actionpack-5.2.4.6/lib/action_controller/metal/rendering.rb:30:in `process_action'
/usr/local/rvm/gems/ruby-2.6.6/gems/actionpack-5.2.4.6/lib/abstract_controller/callbacks.rb:42:in `block in process_action'
/usr/local/rvm/gems/ruby-2.6.6/gems/activesupport-5.2.4.6/lib/active_support/callbacks.rb:109:in `block in run_callbacks'
/opt/zammad/app/controllers/application_controller/has_secure_content_security_policy_for_downloads.rb:18:in `block (4 levels) in <module:HasSecureContentSecurityPolicyForDownloads>'
/usr/local/rvm/gems/ruby-2.6.6/gems/activesupport-5.2.4.6/lib/active_support/notifications.rb:180:in `subscribed'
/opt/zammad/app/controllers/application_controller/has_secure_content_security_policy_for_downloads.rb:17:in `block (3 levels) in <module:HasSecureContentSecurityPolicyForDownloads>'
/usr/local/rvm/gems/ruby-2.6.6/gems/activesupport-5.2.4.6/lib/active_support/notifications.rb:180:in `subscribed'
/opt/zammad/app/controllers/application_controller/has_secure_content_security_policy_for_downloads.rb:16:in `block (2 levels) in <module:HasSecureContentSecurityPolicyForDownloads>'
/usr/local/rvm/gems/ruby-2.6.6/gems/activesupport-5.2.4.6/lib/active_support/callbacks.rb:118:in `instance_exec'
/usr/local/rvm/gems/ruby-2.6.6/gems/activesupport-5.2.4.6/lib/active_support/callbacks.rb:118:in `block in run_callbacks'
/opt/zammad/app/controllers/application_controller/handles_transitions.rb:14:in `handle_transaction'
/usr/local/rvm/gems/ruby-2.6.6/gems/activesupport-5.2.4.6/lib/active_support/callbacks.rb:118:in `block in run_callbacks'
/usr/local/rvm/gems/ruby-2.6.6/gems/activesupport-5.2.4.6/lib/active_support/callbacks.rb:136:in `run_callbacks'
/usr/local/rvm/gems/ruby-2.6.6/gems/actionpack-5.2.4.6/lib/abstract_controller/callbacks.rb:41:in `process_action'
/usr/local/rvm/gems/ruby-2.6.6/gems/actionpack-5.2.4.6/lib/action_controller/metal/rescue.rb:22:in `process_action'
/usr/local/rvm/gems/ruby-2.6.6/gems/actionpack-5.2.4.6/lib/action_controller/metal/instrumentation.rb:34:in `block in process_action'
/usr/local/rvm/gems/ruby-2.6.6/gems/activesupport-5.2.4.6/lib/active_support/notifications.rb:168:in `block in instrument'
/usr/local/rvm/gems/ruby-2.6.6/gems/activesupport-5.2.4.6/lib/active_support/notifications/instrumenter.rb:23:in `instrument'
/usr/local/rvm/gems/ruby-2.6.6/gems/activesupport-5.2.4.6/lib/active_support/notifications.rb:168:in `instrument'
/usr/local/rvm/gems/ruby-2.6.6/gems/actionpack-5.2.4.6/lib/action_controller/metal/instrumentation.rb:32:in `process_action'
/usr/local/rvm/gems/ruby-2.6.6/gems/actionpack-5.2.4.6/lib/action_controller/metal/params_wrapper.rb:256:in `process_action'
/usr/local/rvm/gems/ruby-2.6.6/gems/activerecord-5.2.4.6/lib/active_record/railties/controller_runtime.rb:24:in `process_action'
/usr/local/rvm/gems/ruby-2.6.6/gems/actionpack-5.2.4.6/lib/abstract_controller/base.rb:134:in `process'
/usr/local/rvm/gems/ruby-2.6.6/gems/actionview-5.2.4.6/lib/action_view/rendering.rb:32:in `process'
/usr/local/rvm/gems/ruby-2.6.6/gems/actionpack-5.2.4.6/lib/action_controller/metal.rb:191:in `dispatch'
/usr/local/rvm/gems/ruby-2.6.6/gems/actionpack-5.2.4.6/lib/action_controller/metal.rb:252:in `dispatch'
/usr/local/rvm/gems/ruby-2.6.6/gems/actionpack-5.2.4.6/lib/action_dispatch/routing/route_set.rb:52:in `dispatch'
/usr/local/rvm/gems/ruby-2.6.6/gems/actionpack-5.2.4.6/lib/action_dispatch/routing/route_set.rb:34:in `serve'
/usr/local/rvm/gems/ruby-2.6.6/gems/actionpack-5.2.4.6/lib/action_dispatch/journey/router.rb:52:in `block in serve'
/usr/local/rvm/gems/ruby-2.6.6/gems/actionpack-5.2.4.6/lib/action_dispatch/journey/router.rb:35:in `each'
/usr/local/rvm/gems/ruby-2.6.6/gems/actionpack-5.2.4.6/lib/action_dispatch/journey/router.rb:35:in `serve'
/usr/local/rvm/gems/ruby-2.6.6/gems/actionpack-5.2.4.6/lib/action_dispatch/routing/route_set.rb:840:in `call'
/usr/local/rvm/gems/ruby-2.6.6/gems/omniauth-1.9.1/lib/omniauth/strategy.rb:420:in `call_app!'
/usr/local/rvm/gems/ruby-2.6.6/gems/omniauth-saml-1.10.1/lib/omniauth/strategies/saml.rb:89:in `other_phase'
/usr/local/rvm/gems/ruby-2.6.6/gems/omniauth-1.9.1/lib/omniauth/strategy.rb:190:in `call!'
/usr/local/rvm/gems/ruby-2.6.6/gems/omniauth-1.9.1/lib/omniauth/strategy.rb:169:in `call'
/usr/local/rvm/gems/ruby-2.6.6/gems/omniauth-1.9.1/lib/omniauth/strategy.rb:192:in `call!'
/usr/local/rvm/gems/ruby-2.6.6/gems/omniauth-1.9.1/lib/omniauth/strategy.rb:169:in `call'
/usr/local/rvm/gems/ruby-2.6.6/gems/omniauth-1.9.1/lib/omniauth/strategy.rb:192:in `call!'
/usr/local/rvm/gems/ruby-2.6.6/gems/omniauth-1.9.1/lib/omniauth/strategy.rb:169:in `call'
/usr/local/rvm/gems/ruby-2.6.6/gems/omniauth-1.9.1/lib/omniauth/strategy.rb:192:in `call!'
/usr/local/rvm/gems/ruby-2.6.6/gems/omniauth-1.9.1/lib/omniauth/strategy.rb:169:in `call'
/usr/local/rvm/gems/ruby-2.6.6/gems/omniauth-1.9.1/lib/omniauth/strategy.rb:192:in `call!'
/usr/local/rvm/gems/ruby-2.6.6/gems/omniauth-1.9.1/lib/omniauth/strategy.rb:169:in `call'
/usr/local/rvm/gems/ruby-2.6.6/gems/omniauth-1.9.1/lib/omniauth/strategy.rb:192:in `call!'
/usr/local/rvm/gems/ruby-2.6.6/gems/omniauth-1.9.1/lib/omniauth/strategy.rb:169:in `call'
/usr/local/rvm/gems/ruby-2.6.6/gems/omniauth-1.9.1/lib/omniauth/strategy.rb:192:in `call!'
/usr/local/rvm/gems/ruby-2.6.6/gems/omniauth-1.9.1/lib/omniauth/strategy.rb:169:in `call'
/usr/local/rvm/gems/ruby-2.6.6/gems/omniauth-1.9.1/lib/omniauth/strategy.rb:192:in `call!'
/usr/local/rvm/gems/ruby-2.6.6/gems/omniauth-1.9.1/lib/omniauth/strategy.rb:169:in `call'
/usr/local/rvm/gems/ruby-2.6.6/gems/omniauth-1.9.1/lib/omniauth/strategy.rb:192:in `call!'
/usr/local/rvm/gems/ruby-2.6.6/gems/omniauth-1.9.1/lib/omniauth/strategy.rb:169:in `call'
/usr/local/rvm/gems/ruby-2.6.6/gems/omniauth-1.9.1/lib/omniauth/builder.rb:45:in `call'
/usr/local/rvm/gems/ruby-2.6.6/gems/rack-2.2.3/lib/rack/tempfile_reaper.rb:15:in `call'
/usr/local/rvm/gems/ruby-2.6.6/gems/rack-2.2.3/lib/rack/etag.rb:27:in `call'
/usr/local/rvm/gems/ruby-2.6.6/gems/rack-2.2.3/lib/rack/conditional_get.rb:40:in `call'
/usr/local/rvm/gems/ruby-2.6.6/gems/rack-2.2.3/lib/rack/head.rb:12:in `call'
/usr/local/rvm/gems/ruby-2.6.6/gems/actionpack-5.2.4.6/lib/action_dispatch/http/content_security_policy.rb:18:in `call'
/usr/local/rvm/gems/ruby-2.6.6/gems/rack-2.2.3/lib/rack/session/abstract/id.rb:266:in `context'
/usr/local/rvm/gems/ruby-2.6.6/gems/rack-2.2.3/lib/rack/session/abstract/id.rb:260:in `call'
/usr/local/rvm/gems/ruby-2.6.6/gems/actionpack-5.2.4.6/lib/action_dispatch/middleware/cookies.rb:670:in `call'
/usr/local/rvm/gems/ruby-2.6.6/gems/actionpack-5.2.4.6/lib/action_dispatch/middleware/callbacks.rb:28:in `block in call'
/usr/local/rvm/gems/ruby-2.6.6/gems/activesupport-5.2.4.6/lib/active_support/callbacks.rb:98:in `run_callbacks'
/usr/local/rvm/gems/ruby-2.6.6/gems/actionpack-5.2.4.6/lib/action_dispatch/middleware/callbacks.rb:26:in `call'
/usr/local/rvm/gems/ruby-2.6.6/gems/actionpack-5.2.4.6/lib/action_dispatch/middleware/debug_exceptions.rb:61:in `call'
/usr/local/rvm/gems/ruby-2.6.6/gems/actionpack-5.2.4.6/lib/action_dispatch/middleware/show_exceptions.rb:33:in `call'
/usr/local/rvm/gems/ruby-2.6.6/gems/railties-5.2.4.6/lib/rails/rack/logger.rb:38:in `call_app'
/usr/local/rvm/gems/ruby-2.6.6/gems/railties-5.2.4.6/lib/rails/rack/logger.rb:26:in `block in call'
/usr/local/rvm/gems/ruby-2.6.6/gems/activesupport-5.2.4.6/lib/active_support/tagged_logging.rb:71:in `block in tagged'
/usr/local/rvm/gems/ruby-2.6.6/gems/activesupport-5.2.4.6/lib/active_support/tagged_logging.rb:28:in `tagged'
/usr/local/rvm/gems/ruby-2.6.6/gems/activesupport-5.2.4.6/lib/active_support/tagged_logging.rb:71:in `tagged'
/usr/local/rvm/gems/ruby-2.6.6/gems/railties-5.2.4.6/lib/rails/rack/logger.rb:26:in `call'
/usr/local/rvm/gems/ruby-2.6.6/gems/actionpack-5.2.4.6/lib/action_dispatch/middleware/remote_ip.rb:81:in `call'
/usr/local/rvm/gems/ruby-2.6.6/gems/actionpack-5.2.4.6/lib/action_dispatch/middleware/request_id.rb:27:in `call'
/usr/local/rvm/gems/ruby-2.6.6/gems/rack-2.2.3/lib/rack/method_override.rb:24:in `call'
/usr/local/rvm/gems/ruby-2.6.6/gems/rack-2.2.3/lib/rack/runtime.rb:22:in `call'
/usr/local/rvm/gems/ruby-2.6.6/gems/activesupport-5.2.4.6/lib/active_support/cache/strategy/local_cache_middleware.rb:29:in `call'
/usr/local/rvm/gems/ruby-2.6.6/gems/actionpack-5.2.4.6/lib/action_dispatch/middleware/executor.rb:14:in `call'
/usr/local/rvm/gems/ruby-2.6.6/gems/actionpack-5.2.4.6/lib/action_dispatch/middleware/static.rb:127:in `call'
/usr/local/rvm/gems/ruby-2.6.6/gems/rack-2.2.3/lib/rack/sendfile.rb:110:in `call'
/usr/local/rvm/gems/ruby-2.6.6/gems/railties-5.2.4.6/lib/rails/engine.rb:524:in `call'
/usr/local/rvm/gems/ruby-2.6.6/gems/railties-5.2.4.6/lib/rails/railtie.rb:190:in `public_send'
/usr/local/rvm/gems/ruby-2.6.6/gems/railties-5.2.4.6/lib/rails/railtie.rb:190:in `method_missing'
/usr/local/rvm/gems/ruby-2.6.6/gems/puma-4.3.8/lib/puma/configuration.rb:228:in `call'
/usr/local/rvm/gems/ruby-2.6.6/gems/puma-4.3.8/lib/puma/server.rb:718:in `handle_request'
/usr/local/rvm/gems/ruby-2.6.6/gems/puma-4.3.8/lib/puma/server.rb:472:in `process_client'
/usr/local/rvm/gems/ruby-2.6.6/gems/puma-4.3.8/lib/puma/server.rb:328:in `block in run'
/usr/local/rvm/gems/ruby-2.6.6/gems/puma-4.3.8/lib/puma/thread_pool.rb:134:in `block in spawn_thread'
/usr/local/rvm/gems/ruby-2.6.6/gems/logging-2.2.2/lib/logging/diagnostic_context.rb:474:in `block in create_with_logging_context'
I, [2021-07-16T15:14:45.178258 #16153-87735880] INFO -- : Completed 422 Unprocessable Entity in 17ms (Views: 0.1ms | ActiveRecord: 2.0ms)
```
Screencast:
![kb-pagination-bug](https://user-images.githubusercontent.com/6549061/125954082-0cecb75d-daef-4a0d-9005-976282020732.gif)
### Steps to reproduce the behavior:
* create 150 kb answers within the same category and sort (works)
* create one more kb answer within the same category and try to sort again (fails due to pagination)
Yes I'm sure this is a bug and no feature request or a general question.