tknospdr
(David Muszynski)
June 10, 2025, 4:27pm
1
When attempting to manage a tag group under a category, I get a generic Internal Server Error
pop up window.
I can manage tags under the category, and I can edit tag groups under admin just fine.
It’s just under ANY category if I click the wrench, then click tags, I get the error when attempting to choose a tag group under either:
Restrict these tag groups to this category:
or
Require new topics to have tags from tag groups:
+ Add required tag group
I’m not sure where to look to find a log of this error.
We’re supposed to go live with this forum in the next few days, I would be most appreciative if someone can help me quash this in time to debut it.
We really need to be able to require some tags in a particular category prior to launch.
1 Like
Sorry you’re experiencing this problem.
When you try these things with the javascript console open, do you see any additional error messages that can help with troubleshooting?
I just tried and am not able to replicate. It just saves correctly.
Can you share a screenshot of the “edit tag group” page for the tag group you are trying to use on your category? Maybe the permissions don’t match?
tknospdr
(David Muszynski)
June 10, 2025, 4:39pm
3
I get:
Failed to load resource: the server responded with a status of 500 () ... https://connect.checkinpos.com/tag_groups/filter/search?q=&limit=3
I have 3 different tag groups available, but it doesn’t get as far as showing me the groups available. The pop up happens as soon as I click on the button.
Have you tried this in safe mode ? Maybe a plugin or component is interfering?
Have you updated to the latest version of Discourse?
tknospdr
(David Muszynski)
June 10, 2025, 4:46pm
5
Yes, I just updated this morning. Could be that broke something.
I didn’t know Discourse had a safe mode , hang on…
Yes, still happens in safe mode .
1 Like
tknospdr
(David Muszynski)
June 10, 2025, 4:50pm
7
2
[DiscourseJsProcessor] DEPRECATION: The parts property on path nodes is deprecated, use head and tail instead
2 Jun 2:27 pm
Job exception: Unsupported command argument type: FalseClass
Mo 1:47 pm
Job exception: Unsupported command argument type: FalseClass
Mo 3:10 pm
RuntimeError (default :limit is not between 0 and 3) app/controllers/application_controller.rb:1027:in `fetch_int_from_params' app/controllers/application_controller.rb:1020:in `fetch_limit_from_param
9:24 am
4
[DiscourseJsProcessor] DEPRECATION: The parts property on path nodes is deprecated, use head and tail instead
9:33 am
2
[DiscourseJsProcessor] DEPRECATION: The parts property on path nodes is deprecated, use head and tail instead
9:33 am
16
RuntimeError (default :limit is not between 0 and 3) app/controllers/application_controller.rb:1025:in `fetch_int_from_params' app/controllers/application_controller.rb:1018:in `fetch_limit_from_param
A tough one to help you troubleshoot with reproduction steps on another site besides yours.
Maybe try deleting your tag groups and recreate them again?
tknospdr
(David Muszynski)
June 10, 2025, 4:56pm
9
I’ll give it a shot in a bit. The other groups are assigned to different categories already and continue to work so I’m worried about not being able to reassign them after destruction and recreation.
Can you roll back to an earlier version of Discourse? I did a backup right before updating this morning.
Moin
June 10, 2025, 5:33pm
10
Can you tell me if you changed the max_tag_search_results
site setting?
2 Likes
Moin
June 10, 2025, 5:40pm
12
I can reproduce the issue just by changing the setting on my site to 3 as well.
Could you try changing it back to 5?
2 Likes
tknospdr
(David Muszynski)
June 10, 2025, 5:53pm
13
That indeed fixes the issue. Seems like a bug no?
I wouldn’t think changing that setting should affect selection of another setting.
2 Likes
Yes, you’ve discovered a bug! Thanks for perservering to get to the bottom of it.
Great job finding repro, @moin !
We’ll get this looked into.
1 Like
tknospdr
(David Muszynski)
June 10, 2025, 6:06pm
16
Glad I could help, but I just did what smarter folks told me to do…
1 Like
Moin
June 10, 2025, 6:11pm
17
The log you provided helped me find it.
I searched for fetch_limit_from_param
in the code and found a line in the tag group controller which referenced the setting.
matches = TagGroup.includes(:tags).visible(guardian).all
matches = matches.where("lower(name) ILIKE ?", "%#{params[:q].strip}%") if params[:q].present?
if params[:names].present?
matches = matches.where("lower(NAME) in (?)", params[:names].map(&:downcase))
end
matches =
matches.order("name").limit(
fetch_limit_from_params(default: 5, max: SiteSetting.max_tag_search_results),
)
render json: {
results:
matches.map { |x| { name: x.name, tag_names: x.tags.base_tags.pluck(:name).sort } },
}
end
private
full message and backtrace from logs
Message
RuntimeError (default :limit is not between 0 and 3)
app/controllers/application_controller.rb:1025:in `fetch_int_from_params'
app/controllers/application_controller.rb:1018:in `fetch_limit_from_params'
app/controllers/tag_groups_controller.rb:95:in `search'
app/controllers/application_controller.rb:428:in `block in with_resolved_locale'
app/controllers/application_controller.rb:428:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:35:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:415:in `call'
lib/middleware/csp_script_nonce_injector.rb:12:in `call'
config/initializers/008-rack-cors.rb:26:in `call'
lib/middleware/default_headers.rb:13:in `call'
config/initializers/100-quiet_logger.rb:20:in `call'
config/initializers/100-silence_logger.rb:29:in `call'
lib/middleware/enforce_hostname.rb:23:in `call'
lib/middleware/processing_request.rb:12:in `call'
lib/middleware/request_tracker.rb:385:in `call'
Backtrace
app/controllers/application_controller.rb:1025:in `fetch_int_from_params'
app/controllers/application_controller.rb:1018:in `fetch_limit_from_params'
app/controllers/tag_groups_controller.rb:95:in `search'
actionpack (7.2.2.1) lib/action_controller/metal/basic_implicit_render.rb:8:in `send_action'
actionpack (7.2.2.1) lib/abstract_controller/base.rb:226:in `process_action'
actionpack (7.2.2.1) lib/action_controller/metal/rendering.rb:193:in `process_action'
actionpack (7.2.2.1) lib/abstract_controller/callbacks.rb:261:in `block in process_action'
activesupport (7.2.2.1) lib/active_support/callbacks.rb:121:in `block in run_callbacks'
app/controllers/application_controller.rb:428:in `block in with_resolved_locale'
i18n (1.14.7) lib/i18n.rb:353:in `with_locale'
app/controllers/application_controller.rb:428:in `with_resolved_locale'
activesupport (7.2.2.1) lib/active_support/callbacks.rb:130:in `block in run_callbacks'
activesupport (7.2.2.1) lib/active_support/callbacks.rb:141:in `run_callbacks'
actionpack (7.2.2.1) lib/abstract_controller/callbacks.rb:260:in `process_action'
actionpack (7.2.2.1) lib/action_controller/metal/rescue.rb:27:in `process_action'
actionpack (7.2.2.1) lib/action_controller/metal/instrumentation.rb:77:in `block in process_action'
activesupport (7.2.2.1) lib/active_support/notifications.rb:210:in `block in instrument'
activesupport (7.2.2.1) lib/active_support/notifications/instrumenter.rb:58:in `instrument'
activesupport (7.2.2.1) lib/active_support/notifications.rb:210:in `instrument'
actionpack (7.2.2.1) lib/action_controller/metal/instrumentation.rb:76:in `process_action'
actionpack (7.2.2.1) lib/action_controller/metal/params_wrapper.rb:259:in `process_action'
activerecord (7.2.2.1) lib/active_record/railties/controller_runtime.rb:39:in `process_action'
actionpack (7.2.2.1) lib/abstract_controller/base.rb:163:in `process'
actionview (7.2.2.1) lib/action_view/rendering.rb:40:in `process'
rack-mini-profiler (3.3.1) lib/mini_profiler/profiling_methods.rb:89:in `block in profile_method'
actionpack (7.2.2.1) lib/action_controller/metal.rb:252:in `dispatch'
actionpack (7.2.2.1) lib/action_controller/metal.rb:335:in `dispatch'
actionpack (7.2.2.1) lib/action_dispatch/routing/route_set.rb:67:in `dispatch'
actionpack (7.2.2.1) lib/action_dispatch/routing/route_set.rb:50:in `serve'
actionpack (7.2.2.1) lib/action_dispatch/journey/router.rb:53:in `block in serve'
actionpack (7.2.2.1) lib/action_dispatch/journey/router.rb:133:in `block in find_routes'
actionpack (7.2.2.1) lib/action_dispatch/journey/router.rb:126:in `each'
actionpack (7.2.2.1) lib/action_dispatch/journey/router.rb:126:in `find_routes'
actionpack (7.2.2.1) lib/action_dispatch/journey/router.rb:34:in `serve'
actionpack (7.2.2.1) lib/action_dispatch/routing/route_set.rb:896:in `call'
lib/middleware/omniauth_bypass_middleware.rb:35:in `call'
rack (2.2.13) lib/rack/tempfile_reaper.rb:15:in `call'
rack (2.2.13) lib/rack/conditional_get.rb:27:in `call'
rack (2.2.13) lib/rack/head.rb:12:in `call'
actionpack (7.2.2.1) lib/action_dispatch/http/permissions_policy.rb:38:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:415:in `call'
lib/middleware/csp_script_nonce_injector.rb:12:in `call'
config/initializers/008-rack-cors.rb:26:in `call'
rack (2.2.13) lib/rack/session/abstract/id.rb:266:in `context'
rack (2.2.13) lib/rack/session/abstract/id.rb:260:in `call'
actionpack (7.2.2.1) lib/action_dispatch/middleware/cookies.rb:704:in `call'
actionpack (7.2.2.1) lib/action_dispatch/middleware/callbacks.rb:31:in `block in call'
activesupport (7.2.2.1) lib/active_support/callbacks.rb:101:in `run_callbacks'
actionpack (7.2.2.1) lib/action_dispatch/middleware/callbacks.rb:30:in `call'
actionpack (7.2.2.1) lib/action_dispatch/middleware/debug_exceptions.rb:31:in `call'
actionpack (7.2.2.1) lib/action_dispatch/middleware/show_exceptions.rb:32:in `call'
logster (2.20.1) lib/logster/middleware/reporter.rb:40:in `call'
lib/middleware/default_headers.rb:13:in `call'
lograge (0.14.0) lib/lograge/rails_ext/rack/logger.rb:18:in `call_app'
railties (7.2.2.1) lib/rails/rack/logger.rb:29:in `call'
config/initializers/100-quiet_logger.rb:20:in `call'
config/initializers/100-silence_logger.rb:29:in `call'
actionpack (7.2.2.1) lib/action_dispatch/middleware/request_id.rb:33:in `call'
lib/middleware/enforce_hostname.rb:23:in `call'
rack (2.2.13) lib/rack/method_override.rb:24:in `call'
rack (2.2.13) lib/rack/sendfile.rb:110:in `call'
plugins/discourse-prometheus/lib/middleware/metrics.rb:14:in `call'
rack-mini-profiler (3.3.1) lib/mini_profiler.rb:191:in `call'
lib/middleware/processing_request.rb:12:in `call'
message_bus (4.4.1) lib/message_bus/rack/middleware.rb:60:in `call'
lib/middleware/request_tracker.rb:385:in `call'
actionpack (7.2.2.1) lib/action_dispatch/middleware/remote_ip.rb:96:in `call'
rails_failover (2.2.0) lib/rails_failover/active_record/middleware.rb:67:in `block in call'
activerecord (7.2.2.1) lib/active_record/connection_handling.rb:376:in `with_role_and_shard'
activerecord (7.2.2.1) lib/active_record/connection_handling.rb:147:in `connected_to'
rails_failover (2.2.0) lib/rails_failover/active_record/middleware.rb:64:in `call'
rails_multisite (6.1.0) lib/rails_multisite/middleware.rb:26:in `call'
railties (7.2.2.1) lib/rails/engine.rb:535:in `call'
railties (7.2.2.1) lib/rails/railtie.rb:226:in `public_send'
railties (7.2.2.1) lib/rails/railtie.rb:226:in `method_missing'
rack (2.2.13) lib/rack/urlmap.rb:74:in `block in call'
rack (2.2.13) lib/rack/urlmap.rb:58:in `each'
rack (2.2.13) lib/rack/urlmap.rb:58:in `call'
unicorn (6.1.0) lib/unicorn/http_server.rb:634:in `process_client'
unicorn (6.1.0) lib/unicorn/http_server.rb:739:in `worker_loop'
unicorn (6.1.0) lib/unicorn/http_server.rb:547:in `spawn_missing_workers'
unicorn (6.1.0) lib/unicorn/http_server.rb:143:in `start'
unicorn (6.1.0) bin/unicorn:128:in `<top (required)>'
vendor/bundle/ruby/3.3.0/bin/unicorn:25:in `load'
vendor/bundle/ruby/3.3.0/bin/unicorn:25:in `<main>'
3 Likes