App rebuild aborts due to custom wizard plugin

a rebuild with the latest version does abort with a FileNotFound error:

...
I, [2021-12-01T07:30:27.434946 #670]  INFO -- : Writing /var/www/discourse/public/assets/locales/es-ae86f17b3afa4050566e8f73dc225848cb65e80cad4c295b582952dc77c7eaa0.js
I, [2021-12-01T07:30:27.614232 #670]  INFO -- : Writing /var/www/discourse/public/assets/locales/lv-9f2031c47ff7c4c4148613ed46bcc80db9f17d84b72a0c08fb5dbaf288008aad.js
I, [2021-12-01T07:30:27.822346 #670]  INFO -- : Writing /var/www/discourse/public/assets/locales/el-3c850821550e0cc516515732b7cde8b35cc68c29296abbc39a1c2831ad6ba962.js
I, [2021-12-01T07:30:28.032559 #670]  INFO -- : Writing /var/www/discourse/public/assets/locales/pl_PL-a4a808930b95183b4acb3fec1e8e3e1591cade54f05d4f943585be78e8eb82e5.js
I, [2021-12-01T07:30:28.241255 #670]  INFO -- : Writing /var/www/discourse/public/assets/locales/nb_NO-194012fc110e9b92bd6f406ed2a9eebff3e6dda2ad0bd4b33dfa084b0efb6b67.js
I, [2021-12-01T07:30:28.440104 #670]  INFO -- : Writing /var/www/discourse/public/assets/locales/nl-0bdaabfc71e0a96fef67da00c68f177c508da66854fab7511225dfd11d754aab.js
I, [2021-12-01T07:30:28.448192 #670]  INFO -- : Writing /var/www/discourse/public/assets/wizard-custom-guest-16c07e21721b356a3cf622bc07b3dbee79d53c0624b57562959140418b62a454.js
I, [2021-12-01T07:30:28.455716 #670]  INFO -- : Writing /var/www/discourse/public/assets/wizard-custom-globals-ceb8c5478df3f5ede82d275c13b9badd66fdce63559117914170ea33ab0ee3ba.js
rake aborted!
Sprockets::FileNotFound: couldn't find file 'discourse/app/mixins/composer-upload' with type 'application/javascript'
Checked in these paths:
  /var/www/discourse/app/assets/images
  /var/www/discourse/app/assets/javascripts
  /var/www/discourse/app/assets/stylesheets
  /var/www/discourse/vendor/assets/javascripts
  /var/www/discourse/vendor/assets/svg-icons
  /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/logster-2.10.0/vendor/assets/javascripts
  /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/message_bus-3.3.6/vendor/assets/javascripts
  /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/actionview-6.1.4.1/lib/assets/compiled
  /var/www/discourse/config/locales
  /var/www/discourse/public/javascripts
...
FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake themes:update assets:precompile' failed with return #<Process::Status: pid 668 exit 1>
Location of failure: /pups/lib/pups/exec_command.rb:112:in `spawn'
exec failed with the params {"cd"=>"$home", "hook"=>"assets_precompile", "cmd"=>["su discourse -c 'bundle exec rake themes:update assets:precompile'"]}
f094a27a808540af5c9dd844181fe50f8933cb184b8adf614dee1ecf669fd9cd
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.
./discourse-doctor may help diagnose the problem.
==================== END REBUILD LOG ====================
Failed to rebuild app.

Do you have the custom wizard plugin? Or other non standard plugins? I’m guessing it’s an issue with the A new era for file uploads in Discourse.

1 Like

yes, and yes several, I am just checking them one by one.
When I disabled them all the rebuild did work.

1 Like

I nailed it down, the problem is the custom wizard plugin.
I will move this thread to the plugin category.

@angus fyi, I also created a github issue.

This has been fixed. Please update to the plugin’s latest version (1.15.5).

2 Likes

thanks a lot for the quick fix.
I just sucessfully did the rebuild with the new version of the plugin.

1 Like

I’m seeing what looks like a very similar error when trying to build 2.8.0.beta10 with latest discourse-custom-wizard, during bundle exec rake themes:update assets:precompile and I don’t know whether it’s really another manifestation of essentially the same problem.

Sprockets::FileNotFound: couldn't find file 'discourse/app/mixins/upload' with type 'application/javascript'

I can successfully build by removing discourse-custom-wizard from the list of plugins. The complete list I’m trying to build with (./launcher bootstrap app) is:

hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/discourse/docker_manager.git
          - git clone https://github.com/discourse/discourse-canned-replies.git
          - git clone https://github.com/discourse/discourse-tooltips.git
          - git clone https://github.com/discourse/discourse-solved.git
          - git clone https://github.com/discourse/discourse-data-explorer.git
          - git clone https://github.com/discourse/discourse-assign
          - git clone https://github.com/gdpelican/retort.git
          - git clone https://github.com/discourse/discourse-checklist
          - git clone https://github.com/discourse/discourse-sitemap
          - git clone https://github.com/discourse/discourse-bcc
          - git clone https://github.com/discourse/discourse-math
          - git clone https://github.com/Ebsy/discourse-nationalflags.git
          - git clone https://github.com/discourse/discourse-voting.git
          - git clone https://github.com/cpradio/discourse-plugin-composer-help-button.git
          - git clone https://github.com/paviliondev/discourse-custom-wizard.git

It builds fine with that last line commented out, but repeatedly crashes when I try to build build with it in there.

The more complete error:

I, [2021-12-22T02:29:00.989134 #4965]  INFO -- : Writing /var/www/discourse/public/assets/wizard-custom-globals-ceb8c5478df3f5ede82d275c13b9badd66fdce63559117914170ea33ab0ee3ba.js
rake aborted!
Sprockets::FileNotFound: couldn't find file 'discourse/app/mixins/upload' with type 'application/javascript'
Checked in these paths: 
  /var/www/discourse/app/assets/images
  /var/www/discourse/app/assets/javascripts
  /var/www/discourse/app/assets/stylesheets
  /var/www/discourse/vendor/assets/javascripts
  /var/www/discourse/vendor/assets/svg-icons
  /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/logster-2.10.1/vendor/assets/javascripts
  /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/message_bus-3.3.8/vendor/assets/javascripts
  /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/actionview-6.1.4.1/lib/assets/compiled
  /var/www/discourse/config/locales
  /var/www/discourse/public/javascripts
  /var/www/discourse/plugins/discourse-assign/auto_generated
  /var/www/discourse/plugins/discourse-assign/assets
  /var/www/discourse/plugins/discourse-assign/admin/assets
  /var/www/discourse/plugins/discourse-assign/test/javascripts
  /var/www/discourse/plugins/discourse-bcc/auto_generated
  /var/www/discourse/plugins/discourse-bcc/assets
  /var/www/discourse/plugins/discourse-bcc/admin/assets
  /var/www/discourse/plugins/discourse-bcc/test/javascripts
  /var/www/discourse/plugins/discourse-canned-replies/auto_generated
  /var/www/discourse/plugins/discourse-canned-replies/assets
  /var/www/discourse/plugins/discourse-canned-replies/admin/assets
  /var/www/discourse/plugins/discourse-canned-replies/test/javascripts
  /var/www/discourse/plugins/discourse-checklist/auto_generated
  /var/www/discourse/plugins/discourse-checklist/assets
  /var/www/discourse/plugins/discourse-checklist/admin/assets
  /var/www/discourse/plugins/discourse-checklist/test/javascripts
  /var/www/discourse/plugins/discourse-custom-wizard/assets/javascripts
  /var/www/discourse/plugins/discourse-custom-wizard/assets/stylesheets/wizard
  /var/www/discourse/plugins/discourse-custom-wizard/auto_generated
  /var/www/discourse/plugins/discourse-custom-wizard/assets
  /var/www/discourse/plugins/discourse-custom-wizard/admin/assets
  /var/www/discourse/plugins/discourse-custom-wizard/test/javascripts
  /var/www/discourse/plugins/discourse-data-explorer/auto_generated
  /var/www/discourse/plugins/discourse-data-explorer/assets
  /var/www/discourse/plugins/discourse-data-explorer/admin/assets
  /var/www/discourse/plugins/discourse-data-explorer/test/javascripts
  /var/www/discourse/plugins/discourse-details/auto_generated
  /var/www/discourse/plugins/discourse-details/assets
  /var/www/discourse/plugins/discourse-details/admin/assets
  /var/www/discourse/plugins/discourse-details/test/javascripts
  /var/www/discourse/plugins/discourse-local-dates/auto_generated
  /var/www/discourse/plugins/discourse-local-dates/assets
  /var/www/discourse/plugins/discourse-local-dates/admin/assets
  /var/www/discourse/plugins/discourse-local-dates/test/javascripts
  /var/www/discourse/plugins/discourse-math/auto_generated
  /var/www/discourse/plugins/discourse-math/assets
  /var/www/discourse/plugins/discourse-math/admin/assets
  /var/www/discourse/plugins/discourse-math/test/javascripts
  /var/www/discourse/plugins/discourse-narrative-bot/auto_generated
  /var/www/discourse/plugins/discourse-narrative-bot/assets
  /var/www/discourse/plugins/discourse-narrative-bot/admin/assets
  /var/www/discourse/plugins/discourse-narrative-bot/test/javascripts
  /var/www/discourse/plugins/discourse-nationalflags/auto_generated
  /var/www/discourse/plugins/discourse-nationalflags/assets
  /var/www/discourse/plugins/discourse-nationalflags/admin/assets
  /var/www/discourse/plugins/discourse-nationalflags/test/javascripts
  /var/www/discourse/plugins/discourse-plugin-composer-help-button/auto_generated
  /var/www/discourse/plugins/discourse-plugin-composer-help-button/assets
  /var/www/discourse/plugins/discourse-plugin-composer-help-button/admin/assets
  /var/www/discourse/plugins/discourse-plugin-composer-help-button/test/javascripts
  /var/www/discourse/plugins/discourse-presence/auto_generated
  /var/www/discourse/plugins/discourse-presence/assets
  /var/www/discourse/plugins/discourse-presence/admin/assets
  /var/www/discourse/plugins/discourse-presence/test/javascripts
  /var/www/discourse/plugins/discourse-sitemap/auto_generated
  /var/www/discourse/plugins/discourse-sitemap/assets
  /var/www/discourse/plugins/discourse-sitemap/admin/assets
  /var/www/discourse/plugins/discourse-sitemap/test/javascripts
  /var/www/discourse/plugins/discourse-solved/auto_generated
  /var/www/discourse/plugins/discourse-solved/assets
  /var/www/discourse/plugins/discourse-solved/admin/assets
  /var/www/discourse/plugins/discourse-solved/test/javascripts
  /var/www/discourse/plugins/discourse-tooltips/auto_generated
  /var/www/discourse/plugins/discourse-tooltips/assets
  /var/www/discourse/plugins/discourse-tooltips/admin/assets
  /var/www/discourse/plugins/discourse-tooltips/test/javascripts
  /var/www/discourse/plugins/discourse-voting/auto_generated
  /var/www/discourse/plugins/discourse-voting/assets
  /var/www/discourse/plugins/discourse-voting/admin/assets
  /var/www/discourse/plugins/discourse-voting/test/javascripts
  /var/www/discourse/plugins/docker_manager/auto_generated
  /var/www/discourse/plugins/docker_manager/assets
  /var/www/discourse/plugins/docker_manager/admin/assets
  /var/www/discourse/plugins/docker_manager/test/javascripts
  /var/www/discourse/plugins/lazy-yt/auto_generated
  /var/www/discourse/plugins/lazy-yt/assets
  /var/www/discourse/plugins/lazy-yt/admin/assets
  /var/www/discourse/plugins/lazy-yt/test/javascripts
  /var/www/discourse/plugins/poll/auto_generated
  /var/www/discourse/plugins/poll/assets
  /var/www/discourse/plugins/poll/admin/assets
  /var/www/discourse/plugins/poll/test/javascripts
  /var/www/discourse/plugins/retort/auto_generated
  /var/www/discourse/plugins/retort/assets
  /var/www/discourse/plugins/retort/admin/assets
  /var/www/discourse/plugins/retort/test/javascripts
  /var/www/discourse/plugins/styleguide/auto_generated
  /var/www/discourse/plugins/styleguide/assets
  /var/www/discourse/plugins/styleguide/admin/assets
  /var/www/discourse/plugins/styleguide/test/javascripts
  /var/www/discourse/tmp/ember-rails
  /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/discourse-ember-source-3.12.2.3/dist
  /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/ember-data-source-3.0.2/dist/globals
/var/www/discourse/plugins/discourse-custom-wizard/assets/javascripts/wizard-custom.js:6
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/resolve.rb:65:in `resolve!'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/directive_processor.rb:399:in `resolve'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/directive_processor.rb:207:in `process_require_directive'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/directive_processor.rb:180:in `block in process_directives'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/directive_processor.rb:178:in `each'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/directive_processor.rb:178:in `process_directives'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/directive_processor.rb:83:in `_call'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/directive_processor.rb:68:in `call'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/processor_utils.rb:75:in `call_processor'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/processor_utils.rb:57:in `block in call_processors'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/processor_utils.rb:56:in `reverse_each'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/processor_utils.rb:56:in `call_processors'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/loader.rb:134:in `load_from_unloaded'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/loader.rb:60:in `block in load'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/loader.rb:317:in `fetch_asset_from_dependency_cache'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/loader.rb:44:in `load'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/cached_environment.rb:20:in `block in initialize'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/cached_environment.rb:47:in `load'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/bundle.rb:23:in `block in call'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/utils.rb:200:in `dfs'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/bundle.rb:24:in `call'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/processor_utils.rb:75:in `call_processor'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/processor_utils.rb:57:in `block in call_processors'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/processor_utils.rb:56:in `reverse_each'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/processor_utils.rb:56:in `call_processors'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/loader.rb:134:in `load_from_unloaded'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/loader.rb:60:in `block in load'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/loader.rb:317:in `fetch_asset_from_dependency_cache'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/loader.rb:44:in `load'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/cached_environment.rb:20:in `block in initialize'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/cached_environment.rb:47:in `load'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/base.rb:66:in `find_asset'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/base.rb:73:in `find_all_linked_assets'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/manifest.rb:134:in `block in find'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/manifest.rb:133:in `each'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/manifest.rb:133:in `find'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/manifest.rb:186:in `compile'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/sprockets-rails-3.4.2/lib/sprockets/rails/task.rb:67:in `block (3 levels) in define'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/rake/sprocketstask.rb:147:in `with_logger'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/sprockets-rails-3.4.2/lib/sprockets/rails/task.rb:66:in `block (2 levels) in define'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.6/exe/rake:27:in `<top (required)>'
/usr/local/bin/bundle:23:in `load'
/usr/local/bin/bundle:23:in `<main>'
Tasks: TOP => assets:precompile
(See full trace by running task with --trace)
I, [2021-12-22T02:29:01.062324 #1]  INFO -- : Updating 'discourse-groups-css-classes-in-body' for 'default'...
Updating 'discourse-units' for 'default'...
Updating 'discourse-image-annotator' for 'default'...



FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake themes:update assets:precompile' failed with return #<Process::Status: pid 4963 exit 1>
Location of failure: /pups/lib/pups/exec_command.rb:112:in `spawn'
exec failed with the params {"cd"=>"$home", "hook"=>"assets_precompile", "cmd"=>["su discourse -c 'bundle exec rake themes:update assets:precompile'"]}
758338f1df1e2e950fd7228c757bfb7dfbcf1e7742d6cb175e3aec7c9f52addb
1 Like

Thanks for the report. This is now addressed.

Just a note that we’ve been working on an automated plugin compatibility notification system for a while now and we’ll be releasing it along with some big custom-wizard updates in the new year.

The system picked up this compatibility issue an hour after the relevant commit went into discourse/discourse, and pushed a warning to the plugin clients, which you would have seen in your admin dashboard before you upgraded (screenshot is from our test instance; this functionality is not yet released).

4 Likes

Thank you for that additional fix, which (no surprise) I confirm fixed my build, and wow that automated warning is a great idea! :tada:

2 Likes