Problem:
We recently managed to upgrade from 3.11 to 3.16 and since then, this has caused me quite some headache in our workflows, so I’d like to know if we have hit some unforseen edge-cases or are doing something fundamentally wrong.
We have an internal workflow for powering VMs on/off, and one of the steps there is to disable/enable the host from Puppet reporting via PUT <foreman>/api/hosts/<fqdn> with {'host': {'enabled': "true"/"false"}}. Since the upgrade to 3.16, this triggers the renderability check for the host’s templates. For imagebased hosts, this fails on the kickstart template with differing error messages, but it all comes down to the fact that a KS image is rendered for an image based host.
I have seen these two error messages by now:
- Failed to render template ‘’, error: ERF42-6371 [Foreman::Exception]: Neither disk nor partition table defined for host
- Backtrace for ‘Error while rendering ‘’ template’ error (Module::DelegationError): Foreman::Renderer::Scope::Macros::Base#medium_uri delegated to medium_provider.medium_uri, but medium_provider is nil
I’ll attach a stack trace for the second error (the first one is gone due to logrotate)
In any case, an error in the renderability check leads to the host not being saved and the chages to being applied. This seams to be consistently reproducible with all image based hosts in our org.
Modifying the affected hosts via the UI works just fine.
Expected outcome:
Changes to the host are actually saved, Foreman does not try to render Kickstart files for image based hosts.
Foreman and Proxy versions:
3.16.3
Foreman and Proxy plugin versions:
Plugins:
- foreman-tasks 11.0.5
- foreman_expire_hosts 9.0.1
- foreman_puppet 9.1.0
- foreman_remote_execution 16.2.3
- foreman_scc_manager 5.1.0
- foreman_snapshot_management 4.1.0
- foreman_templates 10.0.10
- foreman_webhooks 4.0.2
- katello 4.18.1
- puppetdb_foreman 6.0.2
Distribution and version:
RHEL 9.7
Other relevant data:
The OS in question (RHEL 10.1) is used both for PXE/KS installation and for image based deployment, based on the use-case. From what I understand in the code and discussions in the PR for this feature, only the relevant templates should be checked, but it seams that’s not working as intended (at least for us).
Sanitized production.log, I anonymized some names and cut out the several occurances of the whole template content being logged.
2026-05-18T09:12:34 [I|app|fa352c3c] Started PUT "/api/hosts/fqdn.example.com" for 10.132.2.200 at 2026-05-18 09:12:34 +0200
2026-05-18T09:12:34 [I|app|fa352c3c] Processing by Api::V2::HostsController#update as JSON
2026-05-18T09:12:34 [I|app|fa352c3c] Parameters: {"host"=>{"enabled"=>false}, "apiv"=>"v2", "id"=>"fqdn.example.com"}
2026-05-18T09:12:34 [I|app|fa352c3c] Authorized user api-user(api-user)
2026-05-18T09:12:38 [W|app|fa352c3c] Could not find a provider for fqdn.example.com. Providers returned {"MediumProviders::Default"=>["RedHat 10.1 medium was not set for host 'fqdn.example.com'", "Invalid medium '' for 'RedHat 10.1'"], "Katello::ManagedContentMediumProvider"=>["Kickstart repository was not set for host 'fqdn.example.com'", "Content source was not set for host 'fqdn.example.com'"]}
2026-05-18T09:12:38 [W|app|fa352c3c] Error while rendering 'custom kickstart template' template
2026-05-18T09:12:38 [I|app|fa352c3c] Backtrace for 'Error while rendering 'custom kickstart template' template' error (Module::DelegationError): Foreman::Renderer::Scope::Macros::Base#medium_uri delegated to medium_provider.medium_uri, but medium_provider is nil: <snipped, inline template>
fa352c3c | /usr/share/foreman/app/services/foreman/renderer/scope/macros/base.rb:13:in `rescue in medium_uri'
fa352c3c | /usr/share/foreman/app/services/foreman/renderer/scope/macros/base.rb:13:in `medium_uri'
fa352c3c | custom kickstart template:44:in `get_binding'
fa352c3c | /usr/share/ruby/erb.rb:905:in `eval'
fa352c3c | /usr/share/ruby/erb.rb:905:in `result'
fa352c3c | /usr/share/foreman/app/services/foreman/renderer/unsafe_mode_renderer.rb:7:in `render'
fa352c3c | /usr/share/foreman/app/services/foreman/renderer/base_renderer.rb:18:in `render'
fa352c3c | /usr/share/foreman/app/services/foreman/renderer.rb:46:in `render'
fa352c3c | /usr/share/foreman/app/models/template.rb:173:in `render'
fa352c3c | /usr/share/foreman/app/models/concerns/orchestration/templates.rb:21:in `set_renderability'
fa352c3c | /usr/share/foreman/app/models/concerns/orchestration.rb:227:in `execute'
fa352c3c | /usr/share/foreman/app/models/concerns/orchestration.rb:149:in `block in process'
fa352c3c | /usr/share/foreman/app/models/concerns/orchestration.rb:141:in `each'
fa352c3c | /usr/share/foreman/app/models/concerns/orchestration.rb:141:in `process'
fa352c3c | /usr/share/foreman/app/models/concerns/orchestration.rb:41:in `around_save_orchestration'
fa352c3c | /usr/share/gems/gems/activesupport-7.0.8.7/lib/active_support/callbacks.rb:127:in `block in run_callbacks'
fa352c3c | /usr/share/gems/gems/activesupport-7.0.8.7/lib/active_support/callbacks.rb:138:in `run_callbacks'
fa352c3c | /usr/share/gems/gems/activesupport-7.0.8.7/lib/active_support/callbacks.rb:929:in `_run_save_callbacks'
fa352c3c | /usr/share/gems/gems/activerecord-7.0.8.7/lib/active_record/callbacks.rb:455:in `create_or_update'
fa352c3c | /usr/share/gems/gems/activerecord-7.0.8.7/lib/active_record/timestamp.rb:126:in `create_or_update'
fa352c3c | /usr/share/gems/gems/activerecord-7.0.8.7/lib/active_record/persistence.rb:615:in `save'
fa352c3c | /usr/share/gems/gems/activerecord-7.0.8.7/lib/active_record/validations.rb:47:in `save'
fa352c3c | /usr/share/gems/gems/activerecord-7.0.8.7/lib/active_record/transactions.rb:298:in `block in save'
fa352c3c | /usr/share/gems/gems/activerecord-7.0.8.7/lib/active_record/transactions.rb:354:in `block in with_transaction_returning_status'
fa352c3c | /usr/share/gems/gems/activerecord-7.0.8.7/lib/active_record/connection_adapters/abstract/transaction.rb:319:in `block in within_new_transaction'
fa352c3c | /usr/share/gems/gems/activesupport-7.0.8.7/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `handle_interrupt'
fa352c3c | /usr/share/gems/gems/activesupport-7.0.8.7/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `block in synchronize'
fa352c3c | /usr/share/gems/gems/activesupport-7.0.8.7/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `handle_interrupt'
fa352c3c | /usr/share/gems/gems/activesupport-7.0.8.7/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `synchronize'
fa352c3c | /usr/share/gems/gems/activerecord-7.0.8.7/lib/active_record/connection_adapters/abstract/transaction.rb:317:in `within_new_transaction'
fa352c3c | /usr/share/gems/gems/activerecord-7.0.8.7/lib/active_record/connection_adapters/abstract/database_statements.rb:316:in `transaction'
fa352c3c | /usr/share/gems/gems/activerecord-7.0.8.7/lib/active_record/transactions.rb:350:in `with_transaction_returning_status'
fa352c3c | /usr/share/gems/gems/activerecord-7.0.8.7/lib/active_record/transactions.rb:298:in `save'
fa352c3c | /usr/share/gems/gems/activerecord-7.0.8.7/lib/active_record/suppressor.rb:50:in `save'
fa352c3c | /usr/share/foreman/app/controllers/api/v2/hosts_controller.rb:163:in `update'
fa352c3c | /usr/share/gems/gems/actionpack-7.0.8.7/lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'
fa352c3c | /usr/share/gems/gems/actionpack-7.0.8.7/lib/abstract_controller/base.rb:215:in `process_action'
fa352c3c | /usr/share/gems/gems/actionpack-7.0.8.7/lib/action_controller/metal/rendering.rb:165:in `process_action'
fa352c3c | /usr/share/gems/gems/actionpack-7.0.8.7/lib/abstract_controller/callbacks.rb:234:in `block in process_action'
fa352c3c | /usr/share/gems/gems/activesupport-7.0.8.7/lib/active_support/callbacks.rb:118:in `block in run_callbacks'
fa352c3c | /usr/share/foreman/app/controllers/concerns/foreman/controller/timezone.rb:10:in `set_timezone'
fa352c3c | /usr/share/gems/gems/activesupport-7.0.8.7/lib/active_support/callbacks.rb:127:in `block in run_callbacks'
fa352c3c | /usr/share/foreman/app/models/concerns/foreman/thread_session.rb:32:in `clear_thread'
fa352c3c | /usr/share/gems/gems/activesupport-7.0.8.7/lib/active_support/callbacks.rb:127:in `block in run_callbacks'
fa352c3c | /usr/share/foreman/app/controllers/concerns/foreman/controller/topbar_sweeper.rb:12:in `set_topbar_sweeper_controller'
fa352c3c | /usr/share/gems/gems/activesupport-7.0.8.7/lib/active_support/callbacks.rb:127:in `block in run_callbacks'
fa352c3c | /usr/share/gems/gems/audited-5.8.0/lib/audited/sweeper.rb:16:in `around'
fa352c3c | /usr/share/gems/gems/activesupport-7.0.8.7/lib/active_support/callbacks.rb:127:in `block in run_callbacks'
fa352c3c | /usr/share/gems/gems/audited-5.8.0/lib/audited/sweeper.rb:16:in `around'
fa352c3c | /usr/share/gems/gems/activesupport-7.0.8.7/lib/active_support/callbacks.rb:127:in `block in run_callbacks'
fa352c3c | /usr/share/gems/gems/activesupport-7.0.8.7/lib/active_support/callbacks.rb:138:in `run_callbacks'
fa352c3c | /usr/share/gems/gems/actionpack-7.0.8.7/lib/abstract_controller/callbacks.rb:233:in `process_action'
fa352c3c | /usr/share/gems/gems/actionpack-7.0.8.7/lib/action_controller/metal/rescue.rb:23:in `process_action'
fa352c3c | /usr/share/gems/gems/actionpack-7.0.8.7/lib/action_controller/metal/instrumentation.rb:67:in `block in process_action'
fa352c3c | /usr/share/gems/gems/activesupport-7.0.8.7/lib/active_support/notifications.rb:206:in `block in instrument'
fa352c3c | /usr/share/gems/gems/activesupport-7.0.8.7/lib/active_support/notifications/instrumenter.rb:24:in `instrument'
fa352c3c | /usr/share/gems/gems/activesupport-7.0.8.7/lib/active_support/notifications.rb:206:in `instrument'
fa352c3c | /usr/share/gems/gems/actionpack-7.0.8.7/lib/action_controller/metal/instrumentation.rb:66:in `process_action'
fa352c3c | /usr/share/gems/gems/actionpack-7.0.8.7/lib/action_controller/metal/params_wrapper.rb:259:in `process_action'
fa352c3c | /usr/share/gems/gems/activerecord-7.0.8.7/lib/active_record/railties/controller_runtime.rb:27:in `process_action'
fa352c3c | /usr/share/gems/gems/actionpack-7.0.8.7/lib/abstract_controller/base.rb:151:in `process'
fa352c3c | /usr/share/gems/gems/actionview-7.0.8.7/lib/action_view/rendering.rb:39:in `process'
fa352c3c | /usr/share/gems/gems/actionpack-7.0.8.7/lib/action_controller/metal.rb:188:in `dispatch'
fa352c3c | /usr/share/gems/gems/actionpack-7.0.8.7/lib/action_controller/metal.rb:251:in `dispatch'
fa352c3c | /usr/share/gems/gems/actionpack-7.0.8.7/lib/action_dispatch/routing/route_set.rb:49:in `dispatch'
fa352c3c | /usr/share/gems/gems/actionpack-7.0.8.7/lib/action_dispatch/routing/route_set.rb:32:in `serve'
fa352c3c | /usr/share/gems/gems/actionpack-7.0.8.7/lib/action_dispatch/routing/mapper.rb:18:in `block in <class:Constraints>'
fa352c3c | /usr/share/gems/gems/actionpack-7.0.8.7/lib/action_dispatch/routing/mapper.rb:48:in `serve'
fa352c3c | /usr/share/gems/gems/actionpack-7.0.8.7/lib/action_dispatch/journey/router.rb:50:in `block in serve'
fa352c3c | /usr/share/gems/gems/actionpack-7.0.8.7/lib/action_dispatch/journey/router.rb:32:in `each'
fa352c3c | /usr/share/gems/gems/actionpack-7.0.8.7/lib/action_dispatch/journey/router.rb:32:in `serve'
fa352c3c | /usr/share/gems/gems/actionpack-7.0.8.7/lib/action_dispatch/routing/route_set.rb:852:in `call'
fa352c3c | /usr/share/gems/gems/katello-4.18.1/lib/katello/middleware/organization_created_enforcer.rb:18:in `call'
fa352c3c | /usr/share/gems/gems/katello-4.18.1/lib/katello/middleware/event_daemon.rb:10:in `call'
fa352c3c | /usr/share/gems/gems/actionpack-7.0.8.7/lib/action_dispatch/middleware/static.rb:23:in `call'
fa352c3c | /usr/share/gems/gems/actionpack-7.0.8.7/lib/action_dispatch/middleware/static.rb:23:in `call'
fa352c3c | /usr/share/gems/gems/apipie-dsl-2.6.2/lib/apipie_dsl/static_dispatcher.rb:67:in `call'
fa352c3c | /usr/share/gems/gems/apipie-rails-1.4.2/lib/apipie/static_dispatcher.rb:74:in `call'
fa352c3c | /usr/share/gems/gems/actionpack-7.0.8.7/lib/action_dispatch/middleware/static.rb:23:in `call'
fa352c3c | /usr/share/gems/gems/actionpack-7.0.8.7/lib/action_dispatch/middleware/static.rb:23:in `call'
fa352c3c | /usr/share/gems/gems/actionpack-7.0.8.7/lib/action_dispatch/middleware/static.rb:23:in `call'
fa352c3c | /usr/share/gems/gems/actionpack-7.0.8.7/lib/action_dispatch/middleware/static.rb:23:in `call'
fa352c3c | /usr/share/gems/gems/actionpack-7.0.8.7/lib/action_dispatch/middleware/static.rb:23:in `call'
fa352c3c | /usr/share/gems/gems/actionpack-7.0.8.7/lib/action_dispatch/middleware/static.rb:23:in `call'
fa352c3c | /usr/share/gems/gems/actionpack-7.0.8.7/lib/action_dispatch/middleware/static.rb:23:in `call'
fa352c3c | /usr/share/gems/gems/actionpack-7.0.8.7/lib/action_dispatch/middleware/static.rb:23:in `call'
fa352c3c | /usr/share/foreman/lib/foreman/middleware/libvirt_connection_cleaner.rb:9:in `call'
fa352c3c | /usr/share/foreman/lib/foreman/middleware/telemetry.rb:10:in `call'
fa352c3c | /usr/share/gems/gems/apipie-rails-1.4.2/lib/apipie/middleware/checksum_in_headers.rb:27:in `call'
fa352c3c | /usr/share/gems/gems/rack-2.2.17/lib/rack/tempfile_reaper.rb:15:in `call'
fa352c3c | /usr/share/gems/gems/rack-2.2.17/lib/rack/etag.rb:27:in `call'
fa352c3c | /usr/share/gems/gems/rack-2.2.17/lib/rack/conditional_get.rb:40:in `call'
fa352c3c | /usr/share/gems/gems/rack-2.2.17/lib/rack/head.rb:12:in `call'
fa352c3c | /usr/share/gems/gems/actionpack-7.0.8.7/lib/action_dispatch/http/permissions_policy.rb:38:in `call'
fa352c3c | /usr/share/gems/gems/actionpack-7.0.8.7/lib/action_dispatch/http/content_security_policy.rb:39:in `call'
fa352c3c | /usr/share/foreman/lib/foreman/middleware/logging_context_session.rb:22:in `call'
fa352c3c | /usr/share/gems/gems/rack-2.2.17/lib/rack/session/abstract/id.rb:266:in `context'
fa352c3c | /usr/share/gems/gems/rack-2.2.17/lib/rack/session/abstract/id.rb:260:in `call'
fa352c3c | /usr/share/gems/gems/actionpack-7.0.8.7/lib/action_dispatch/middleware/cookies.rb:704:in `call'
fa352c3c | /usr/share/gems/gems/actionpack-7.0.8.7/lib/action_dispatch/middleware/callbacks.rb:27:in `block in call'
fa352c3c | /usr/share/gems/gems/activesupport-7.0.8.7/lib/active_support/callbacks.rb:99:in `run_callbacks'
fa352c3c | /usr/share/gems/gems/actionpack-7.0.8.7/lib/action_dispatch/middleware/callbacks.rb:26:in `call'
fa352c3c | /usr/share/gems/gems/actionpack-7.0.8.7/lib/action_dispatch/middleware/debug_exceptions.rb:28:in `call'
fa352c3c | /usr/share/gems/gems/actionpack-7.0.8.7/lib/action_dispatch/middleware/show_exceptions.rb:29:in `call'
fa352c3c | /usr/share/gems/gems/railties-7.0.8.7/lib/rails/rack/logger.rb:40:in `call_app'
fa352c3c | /usr/share/gems/gems/railties-7.0.8.7/lib/rails/rack/logger.rb:27:in `call'
fa352c3c | /usr/share/gems/gems/sprockets-rails-3.5.2/lib/sprockets/rails/quiet_assets.rb:17:in `call'
fa352c3c | /usr/share/foreman/lib/foreman/middleware/logging_context_request.rb:11:in `call'
fa352c3c | /usr/share/gems/gems/actionpack-7.0.8.7/lib/action_dispatch/middleware/remote_ip.rb:93:in `call'
fa352c3c | /usr/share/gems/gems/actionpack-7.0.8.7/lib/action_dispatch/middleware/request_id.rb:26:in `call'
fa352c3c | /usr/share/gems/gems/katello-4.18.1/lib/katello/prevent_json_parsing.rb:12:in `call'
fa352c3c | /usr/share/gems/gems/rack-2.2.17/lib/rack/method_override.rb:24:in `call'
fa352c3c | /usr/share/gems/gems/rack-2.2.17/lib/rack/runtime.rb:22:in `call'
fa352c3c | /usr/share/gems/gems/activesupport-7.0.8.7/lib/active_support/cache/strategy/local_cache_middleware.rb:29:in `call'
fa352c3c | /usr/share/gems/gems/actionpack-7.0.8.7/lib/action_dispatch/middleware/executor.rb:14:in `call'
fa352c3c | /usr/share/gems/gems/rack-2.2.17/lib/rack/sendfile.rb:110:in `call'
fa352c3c | /usr/share/gems/gems/actionpack-7.0.8.7/lib/action_dispatch/middleware/ssl.rb:77:in `call'
fa352c3c | /usr/share/gems/gems/actionpack-7.0.8.7/lib/action_dispatch/middleware/host_authorization.rb:131:in `call'
fa352c3c | /usr/share/gems/gems/secure_headers-7.1.0/lib/secure_headers/middleware.rb:11:in `call'
fa352c3c | /usr/share/gems/gems/railties-7.0.8.7/lib/rails/engine.rb:530:in `call'
fa352c3c | /usr/share/gems/gems/railties-7.0.8.7/lib/rails/railtie.rb:226:in `public_send'
fa352c3c | /usr/share/gems/gems/railties-7.0.8.7/lib/rails/railtie.rb:226:in `method_missing'
fa352c3c | /usr/share/gems/gems/rack-2.2.17/lib/rack/urlmap.rb:74:in `block in call'
fa352c3c | /usr/share/gems/gems/rack-2.2.17/lib/rack/urlmap.rb:58:in `each'
fa352c3c | /usr/share/gems/gems/rack-2.2.17/lib/rack/urlmap.rb:58:in `call'
fa352c3c | /usr/share/gems/gems/puma-6.6.1/lib/puma/configuration.rb:279:in `call'
fa352c3c | /usr/share/gems/gems/puma-6.6.1/lib/puma/request.rb:99:in `block in handle_request'
fa352c3c | /usr/share/gems/gems/puma-6.6.1/lib/puma/thread_pool.rb:390:in `with_force_shutdown'
fa352c3c | /usr/share/gems/gems/puma-6.6.1/lib/puma/request.rb:98:in `handle_request'
fa352c3c | /usr/share/gems/gems/puma-6.6.1/lib/puma/server.rb:472:in `process_client'
fa352c3c | /usr/share/gems/gems/puma-6.6.1/lib/puma/server.rb:254:in `block in run'
fa352c3c | /usr/share/gems/gems/puma-6.6.1/lib/puma/thread_pool.rb:167:in `block in spawn_thread'
fa352c3c | /usr/share/gems/gems/logging-2.4.0/lib/logging/diagnostic_context.rb:474:in `block in create_with_logging_context'
2026-05-18T09:12:38 [W|app|fa352c3c] Failed to render template 'custom kickstart template', error: Foreman::Renderer::Scope::Macros::Base#medium_uri delegated to medium_provider.medium_uri, but medium_provider is nil: #<Foreman::Renderer::Scope::Provisioning:0x00007fdf0c3cff08 @source=#<Foreman::Renderer::Source::Database:0x00007fdf0c3cff58 @template=#<ProvisioningTemplate id: 243, name: "custom kickstart template", template: <snipped, inline template>
2026-05-18T09:12:38 [W|app|fa352c3c] Rolling back due to a problem: [#<Orchestration::Task:0x00007fdf0d283270 @name="Check renderability of template 'custom kickstart template'.", @id="Check renderability of template 'custom kickstart template'.", @status="failed", @priority=1, @action=[#<Host::Managed id: 12511, name: "fqdn.example.com", last_compile: "2026-05-08 14:00:59.000000000 +0000", last_report: [FILTERED], updated_at: "2026-05-18 06:40:53.632353000 +0000", created_at: "2026-04-28 08:30:41.214474000 +0000", root_pass: nil, architecture_id: 1, operatingsystem_id: 81, ptable_id: nil, medium_id: nil, build: false, comment: "", disk: nil, installed_at: nil, model_id: 13, hostgroup_id: 519, owner_id: 106, owner_type: "User", enabled: false, puppet_ca_proxy_id: 1, managed: true, use_image: nil, image_file: nil, uuid: "500aaa49-2544-534f-eaab-a61cf81af908", compute_resource_id: 4, puppet_proxy_id: 24, certname: "fqdn.example.com", image_id: 33, organization_id: 1, location_id: 2, type: "Host::Managed", otp: nil, realm_id: nil, compute_profile_id: nil, provision_method: "image", grub_pass: nil, global_status: 2, lookup_value_matcher: [FILTERED], pxe_loader: nil, initiated_at: nil, build_errors: nil, expired_on: nil, creator_id: 106>, :set_renderability], @created=1779088355.2209282, @timestamp=2026-05-18 07:12:38.950754781 UTC>]
2026-05-18T09:12:38 [I|app|fa352c3c] Processed 1 tasks from queue 'Host::Managed Main', completed 0/1
2026-05-18T09:12:38 [E|app|fa352c3c] Task 'Check renderability of template 'custom kickstart template'.' *failed*
2026-05-18T09:12:38 [E|app|fa352c3c] Unprocessable entity Host::Managed (id: 12511):
fa352c3c | Failed to render template 'custom kickstart template', error: Foreman::Renderer::Scope::Macros::Base#medium_uri delegated to medium_provider.medium_uri, but medium_provider is nil: #<Foreman::Renderer::Scope::Provisioning:0x00007fdf0c3cff08 @source=#<Foreman::Renderer::Source::Database:0x00007fdf0c3cff58 @template=#<ProvisioningTemplate id: 243, name: "custom kickstart template", template: <snipped, inline template>
fa352c3c |
2026-05-18T09:12:38 [I|app|fa352c3c] Rendered api/v2/errors/unprocessable_entity.json.rabl within api/v2/layouts/error_layout (Duration: 2.3ms | Allocations: 307)
2026-05-18T09:12:38 [I|app|fa352c3c] Rendered layout api/v2/layouts/error_layout.json.erb (Duration: 2.5ms | Allocations: 405)
2026-05-18T09:12:38 [I|app|fa352c3c] Completed 422 Unprocessable Entity in 4204ms (Views: 3.2ms | ActiveRecord: 55.3ms | Allocations: 846290)