Error When Provisioning a Discovered Host

Problem:
When I go to Hosts > Discovered Hosts and click on the provision button next to a host, a window opens asking me to set some initial host properties. However, when I click on Customize Host or Create Host, I immediately get an error saying “undefined method [] for nil:NilClass”
Expected outcome:
Foreman should let me configure and provision a newly discovered host.
Foreman and Proxy versions:
Foreman 3.6.1
Foreman and Proxy plugin versions:
foreman-tasks 7.2.1
foreman_bootdisk 21.0.4
foreman_discovery 22.0.4
foreman_remote_execution 9.1.0
katello 4.8.2
Distribution and version:
Almalinux 8.8
Other relevant data:
Error from the Foreman logs:

2023-07-07T10:28:45 [I|app|16ca4bc5] Started GET "/discovered_hosts/mac6c3c8c4383cd/edit?utf8=%E2%9C%93&host%5Bhostgroup_id%5D=1&host%5Borganization_id%5D=1&host%5Bl[70/1871]
d%5D=2" for 10.12.250.30 at 2023-07-07 10:28:45 -0500
2023-07-07T10:28:45 [I|app|16ca4bc5] Processing by DiscoveredHostsController#edit as HTML
2023-07-07T10:28:45 [I|app|16ca4bc5]   Parameters: {"utf8"=>"✓", "host"=>{"hostgroup_id"=>"1", "organization_id"=>"1", "location_id"=>"2"}, "id"=>"mac6c3c8c4383cd"}
2023-07-07T10:28:45 [W|app|16ca4bc5] undefined method `[]' for nil:NilClass
2023-07-07T10:28:45 [I|app|16ca4bc5] Backtrace for 'undefined method `[]' for nil:NilClass' error (NoMethodError): undefined method `[]' for nil:NilClass
 16ca4bc5 | /usr/share/gems/gems/katello-4.8.2/app/models/katello/concerns/host_managed_extensions.rb:45:in `apply_inherited_attributes'
 16ca4bc5 | /usr/share/foreman/app/models/host/managed.rb:76:in `initialize'
 16ca4bc5 | /usr/share/gems/gems/activerecord-6.1.7.3/lib/active_record/persistence.rb:573:in `becomes'
 16ca4bc5 | /usr/share/foreman/app/models/host/base.rb:300:in `becomes'
 16ca4bc5 | /usr/share/gems/gems/foreman_discovery-22.0.4/app/services/foreman_discovery/host_converter.rb:6:in `to_managed'
 16ca4bc5 | /usr/share/gems/gems/foreman_discovery-22.0.4/app/controllers/discovered_hosts_controller.rb:61:in `edit'
 16ca4bc5 | /usr/share/gems/gems/actionpack-6.1.7.3/lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'
 16ca4bc5 | /usr/share/gems/gems/actionpack-6.1.7.3/lib/abstract_controller/base.rb:228:in `process_action'
 16ca4bc5 | /usr/share/gems/gems/actionpack-6.1.7.3/lib/action_controller/metal/rendering.rb:30:in `process_action'
 16ca4bc5 | /usr/share/gems/gems/actionpack-6.1.7.3/lib/abstract_controller/callbacks.rb:42:in `block in process_action'
 16ca4bc5 | /usr/share/gems/gems/activesupport-6.1.7.3/lib/active_support/callbacks.rb:117:in `block in run_callbacks'
 16ca4bc5 | /usr/share/gems/gems/foreman_discovery-22.0.4/app/controllers/discovered_hosts_controller.rb:328:in `skip_bullet'
 16ca4bc5 | /usr/share/gems/gems/activesupport-6.1.7.3/lib/active_support/callbacks.rb:126:in `block in run_callbacks'
 16ca4bc5 | /usr/share/foreman/app/controllers/concerns/foreman/controller/timezone.rb:10:in `set_timezone'
 16ca4bc5 | /usr/share/gems/gems/activesupport-6.1.7.3/lib/active_support/callbacks.rb:126:in `block in run_callbacks'
 16ca4bc5 | /usr/share/foreman/app/models/concerns/foreman/thread_session.rb:32:in `clear_thread'
 16ca4bc5 | /usr/share/gems/gems/activesupport-6.1.7.3/lib/active_support/callbacks.rb:126:in `block in run_callbacks'
 16ca4bc5 | /usr/share/foreman/app/controllers/concerns/foreman/controller/topbar_sweeper.rb:12:in `set_topbar_sweeper_controller'
 16ca4bc5 | /usr/share/gems/gems/activesupport-6.1.7.3/lib/active_support/callbacks.rb:126:in `block in run_callbacks'
 16ca4bc5 | /usr/share/gems/gems/audited-5.3.1/lib/audited/sweeper.rb:16:in `around'
 16ca4bc5 | /usr/share/gems/gems/activesupport-6.1.7.3/lib/active_support/callbacks.rb:126:in `block in run_callbacks'
 16ca4bc5 | /usr/share/gems/gems/audited-5.3.1/lib/audited/sweeper.rb:16:in `around'
 16ca4bc5 | /usr/share/gems/gems/activesupport-6.1.7.3/lib/active_support/callbacks.rb:126:in `block in run_callbacks'
 16ca4bc5 | /usr/share/gems/gems/activesupport-6.1.7.3/lib/active_support/callbacks.rb:137:in `run_callbacks'
 16ca4bc5 | /usr/share/gems/gems/actionpack-6.1.7.3/lib/abstract_controller/callbacks.rb:41:in `process_action'
 16ca4bc5 | /usr/share/gems/gems/actionpack-6.1.7.3/lib/action_controller/metal/rescue.rb:22:in `process_action'
 16ca4bc5 | /usr/share/gems/gems/actionpack-6.1.7.3/lib/action_controller/metal/instrumentation.rb:34:in `block in process_action'
 16ca4bc5 | /usr/share/gems/gems/activesupport-6.1.7.3/lib/active_support/notifications.rb:203:in `block in instrument'
 16ca4bc5 | /usr/share/gems/gems/activesupport-6.1.7.3/lib/active_support/notifications/instrumenter.rb:24:in `instrument'
 16ca4bc5 | /usr/share/gems/gems/activesupport-6.1.7.3/lib/active_support/notifications.rb:203:in `instrument'
 16ca4bc5 | /usr/share/gems/gems/actionpack-6.1.7.3/lib/action_controller/metal/instrumentation.rb:33:in `process_action'
 16ca4bc5 | /usr/share/gems/gems/actionpack-6.1.7.3/lib/action_controller/metal/params_wrapper.rb:249:in `process_action'
 16ca4bc5 | /usr/share/gems/gems/activerecord-6.1.7.3/lib/active_record/railties/controller_runtime.rb:27:in `process_action'
 16ca4bc5 | /usr/share/gems/gems/actionpack-6.1.7.3/lib/abstract_controller/base.rb:165:in `process'
 16ca4bc5 | /usr/share/gems/gems/actionview-6.1.7.3/lib/action_view/rendering.rb:39:in `process'
 16ca4bc5 | /usr/share/gems/gems/actionpack-6.1.7.3/lib/action_controller/metal.rb:190:in `dispatch'
 16ca4bc5 | /usr/share/gems/gems/actionpack-6.1.7.3/lib/action_controller/metal.rb:254:in `dispatch'
 16ca4bc5 | /usr/share/gems/gems/actionpack-6.1.7.3/lib/action_dispatch/routing/route_set.rb:50:in `dispatch'                                                        [27/1871]
 16ca4bc5 | /usr/share/gems/gems/actionpack-6.1.7.3/lib/action_dispatch/routing/route_set.rb:33:in `serve'
 16ca4bc5 | /usr/share/gems/gems/actionpack-6.1.7.3/lib/action_dispatch/journey/router.rb:50:in `block in serve'
 16ca4bc5 | /usr/share/gems/gems/actionpack-6.1.7.3/lib/action_dispatch/journey/router.rb:32:in `each'
 16ca4bc5 | /usr/share/gems/gems/actionpack-6.1.7.3/lib/action_dispatch/journey/router.rb:32:in `serve'
 16ca4bc5 | /usr/share/gems/gems/actionpack-6.1.7.3/lib/action_dispatch/routing/route_set.rb:842:in `call'
 16ca4bc5 | /usr/share/gems/gems/katello-4.8.2/lib/katello/middleware/organization_created_enforcer.rb:18:in `call'
 16ca4bc5 | /usr/share/gems/gems/katello-4.8.2/lib/katello/middleware/event_daemon.rb:10:in `call'
 16ca4bc5 | /usr/share/gems/gems/actionpack-6.1.7.3/lib/action_dispatch/middleware/static.rb:24:in `call'
 16ca4bc5 | /usr/share/gems/gems/actionpack-6.1.7.3/lib/action_dispatch/middleware/static.rb:24:in `call'
 16ca4bc5 | /usr/share/gems/gems/apipie-dsl-2.5.0/lib/apipie_dsl/static_dispatcher.rb:67:in `call'
 16ca4bc5 | /usr/share/gems/gems/apipie-rails-0.8.2/lib/apipie/static_dispatcher.rb:68:in `call'
 16ca4bc5 | /usr/share/gems/gems/apipie-rails-0.8.2/lib/apipie/extractor/recorder.rb:137:in `call'
 16ca4bc5 | /usr/share/gems/gems/actionpack-6.1.7.3/lib/action_dispatch/middleware/static.rb:24:in `call'
 16ca4bc5 | /usr/share/gems/gems/actionpack-6.1.7.3/lib/action_dispatch/middleware/static.rb:24:in `call'
 16ca4bc5 | /usr/share/gems/gems/actionpack-6.1.7.3/lib/action_dispatch/middleware/static.rb:24:in `call'
 16ca4bc5 | /usr/share/gems/gems/actionpack-6.1.7.3/lib/action_dispatch/middleware/static.rb:24:in `call'
 16ca4bc5 | /usr/share/gems/gems/actionpack-6.1.7.3/lib/action_dispatch/middleware/static.rb:24:in `call'
 16ca4bc5 | /usr/share/foreman/lib/foreman/middleware/libvirt_connection_cleaner.rb:9:in `call'
 16ca4bc5 | /usr/share/foreman/lib/foreman/middleware/telemetry.rb:10:in `call'
 16ca4bc5 | /usr/share/gems/gems/apipie-rails-0.8.2/lib/apipie/middleware/checksum_in_headers.rb:27:in `call'
 16ca4bc5 | /usr/share/gems/gems/rack-2.2.6.2/lib/rack/tempfile_reaper.rb:15:in `call'
 16ca4bc5 | /usr/share/gems/gems/rack-2.2.6.2/lib/rack/etag.rb:27:in `call'
 16ca4bc5 | /usr/share/gems/gems/rack-2.2.6.2/lib/rack/conditional_get.rb:27:in `call'
 16ca4bc5 | /usr/share/gems/gems/rack-2.2.6.2/lib/rack/head.rb:12:in `call'
 16ca4bc5 | /usr/share/gems/gems/actionpack-6.1.7.3/lib/action_dispatch/http/permissions_policy.rb:22:in `call'
 16ca4bc5 | /usr/share/gems/gems/actionpack-6.1.7.3/lib/action_dispatch/http/content_security_policy.rb:19:in `call'
 16ca4bc5 | /usr/share/foreman/lib/foreman/middleware/logging_context_session.rb:22:in `call'
 16ca4bc5 | /usr/share/gems/gems/rack-2.2.6.2/lib/rack/session/abstract/id.rb:266:in `context'
 16ca4bc5 | /usr/share/gems/gems/rack-2.2.6.2/lib/rack/session/abstract/id.rb:260:in `call'
 16ca4bc5 | /usr/share/gems/gems/actionpack-6.1.7.3/lib/action_dispatch/middleware/cookies.rb:697:in `call'
 16ca4bc5 | /usr/share/gems/gems/actionpack-6.1.7.3/lib/action_dispatch/middleware/callbacks.rb:27:in `block in call'
 16ca4bc5 | /usr/share/gems/gems/activesupport-6.1.7.3/lib/active_support/callbacks.rb:98:in `run_callbacks'
 16ca4bc5 | /usr/share/gems/gems/actionpack-6.1.7.3/lib/action_dispatch/middleware/callbacks.rb:26:in `call'
 16ca4bc5 | /usr/share/gems/gems/actionpack-6.1.7.3/lib/action_dispatch/middleware/actionable_exceptions.rb:18:in `call'
 16ca4bc5 | /usr/share/gems/gems/actionpack-6.1.7.3/lib/action_dispatch/middleware/debug_exceptions.rb:29:in `call'
 16ca4bc5 | /usr/share/gems/gems/actionpack-6.1.7.3/lib/action_dispatch/middleware/show_exceptions.rb:33:in `call'
 16ca4bc5 | /usr/share/gems/gems/railties-6.1.7.3/lib/rails/rack/logger.rb:37:in `call_app'
 16ca4bc5 | /usr/share/gems/gems/railties-6.1.7.3/lib/rails/rack/logger.rb:28:in `call'
 16ca4bc5 | /usr/share/gems/gems/sprockets-rails-3.4.2/lib/sprockets/rails/quiet_assets.rb:13:in `call'
 16ca4bc5 | /usr/share/foreman/lib/foreman/middleware/logging_context_request.rb:11:in `call'
 16ca4bc5 | /usr/share/gems/gems/actionpack-6.1.7.3/lib/action_dispatch/middleware/remote_ip.rb:81:in `call'
 16ca4bc5 | /usr/share/gems/gems/actionpack-6.1.7.3/lib/action_dispatch/middleware/request_id.rb:26:in `call'
 16ca4bc5 | /usr/share/gems/gems/katello-4.8.2/lib/katello/prevent_json_parsing.rb:12:in `call'
 16ca4bc5 | /usr/share/gems/gems/rack-2.2.6.2/lib/rack/method_override.rb:24:in `call'
 16ca4bc5 | /usr/share/gems/gems/rack-2.2.6.2/lib/rack/runtime.rb:22:in `call'
 16ca4bc5 | /usr/share/gems/gems/activesupport-6.1.7.3/lib/active_support/cache/strategy/local_cache_middleware.rb:29:in `call'
 16ca4bc5 | /usr/share/gems/gems/actionpack-6.1.7.3/lib/action_dispatch/middleware/executor.rb:14:in `call'
 16ca4bc5 | /usr/share/gems/gems/rack-2.2.6.2/lib/rack/sendfile.rb:110:in `call'
 16ca4bc5 | /usr/share/gems/gems/actionpack-6.1.7.3/lib/action_dispatch/middleware/ssl.rb:77:in `call'
 16ca4bc5 | /usr/share/gems/gems/actionpack-6.1.7.3/lib/action_dispatch/middleware/host_authorization.rb:142:in `call'
 16ca4bc5 | /usr/share/gems/gems/secure_headers-6.5.0/lib/secure_headers/middleware.rb:11:in `call'
 16ca4bc5 | /usr/share/gems/gems/railties-6.1.7.3/lib/rails/engine.rb:539:in `call'
 16ca4bc5 | /usr/share/gems/gems/railties-6.1.7.3/lib/rails/railtie.rb:207:in `public_send'
 16ca4bc5 | /usr/share/gems/gems/railties-6.1.7.3/lib/rails/railtie.rb:207:in `method_missing'
 16ca4bc5 | /usr/share/gems/gems/rack-2.2.6.2/lib/rack/urlmap.rb:74:in `block in call'
 16ca4bc5 | /usr/share/gems/gems/rack-2.2.6.2/lib/rack/urlmap.rb:58:in `each'
 16ca4bc5 | /usr/share/gems/gems/rack-2.2.6.2/lib/rack/urlmap.rb:58:in `call'
 16ca4bc5 | /usr/share/gems/gems/puma-5.6.5/lib/puma/configuration.rb:252:in `call'
 16ca4bc5 | /usr/share/gems/gems/puma-5.6.5/lib/puma/request.rb:77:in `block in handle_request'
 16ca4bc5 | /usr/share/gems/gems/puma-5.6.5/lib/puma/thread_pool.rb:340:in `with_force_shutdown'
 16ca4bc5 | /usr/share/gems/gems/puma-5.6.5/lib/puma/request.rb:76:in `handle_request'
 16ca4bc5 | /usr/share/gems/gems/puma-5.6.5/lib/puma/server.rb:443:in `process_client'
 16ca4bc5 | /usr/share/gems/gems/puma-5.6.5/lib/puma/thread_pool.rb:147:in `block in spawn_thread'
 16ca4bc5 | /usr/share/gems/gems/logging-2.3.1/lib/logging/diagnostic_context.rb:474:in `block in create_with_logging_context'
2023-07-07T10:28:45 [I|app|16ca4bc5]   Rendered common/500.html.erb within layouts/application (Duration: 6.6ms | Allocations: 5787)
2023-07-07T10:28:45 [I|app|16ca4bc5]   Rendered layouts/base.html.erb (Duration: 4.8ms | Allocations: 7281)
2023-07-07T10:28:45 [I|app|16ca4bc5]   Rendered layout layouts/application.html.erb (Duration: 18.5ms | Allocations: 23882)
2023-07-07T10:28:45 [I|app|16ca4bc5] Completed 500 Internal Server Error in 47ms (Views: 19.0ms | ActiveRecord: 5.8ms | Allocations: 30728)

Hi @BonkTurnip ,

I recently merged the PR for this: Bug #36601: Error when autoprovision/provision for a discovered host - Katello - Foreman

We’ll be releasing Katello 4.9.1 soon which will have the fix. It is a very very small code change, so if you feel comfortable, you could also patch the change into your code.

I’ll see about triaging it to 4.8. Might not release too too soon though.

Thanks @iballou !

If I need to provision anything before the next release, I’ll go ahead and make the necessary change to my code.

1 Like