The discussion revolves around issues with the latest Discourse update, particularly concerning the AI plugin and build failures. KCAS reports that the update fails due to a database migration error related to the llm_models.url column, which is missing. Commenting out the AI plugin allows the build to proceed, but another error, Zlib::BufError, occurs during asset compilation. KCAS identifies this as a separate issue linked to Cloudflare’s auto-minify feature, which is resolved by clearing the cache. KCAS also notes that the forum becomes blank with JavaScript errors like Uncaught SyntaxError: Unexpected identifier '#r' after the update. RGJ explains that the PG::UndefinedColumn error occurs during plugin updates because Discourse only catches PG::UndefinedTable exceptions, not PG::UndefinedColumn. RGJ suggests a workaround by reverting to an earlier commit of the AI plugin before updating. Other users, including BaronGrivet, report similar issues with dt7948 is not defined errors, which are linked to Cloudflare’s Speed optimizations. th21 mentions that the issue might be related to deprecated scripts in the theme. KCAS confirms that re-enabling the AI plugin and updating resolves the issue, suggesting a potential fix. Bathinda asks for guidance on clearing the cache, indicating that this is a common troubleshooting step.
Latest update wont build with the following errors. Failed on UI update and CLI.
FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate' failed with return #<Process::Status: pid 921 exit 1>
Location of failure: /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawn'
exec failed with the params {"cd"=>"$home", "tag"=>"migrate", "hook"=>"db_migrate", "cmd"=>["su discourse -c 'bundle exec rake db:migrate'"]}
bootstrap failed with exit code 1
** 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.
f7f7afc677212ddcaaa8e1979af5ddef79b3accffe118da6c9542682c104bc27
==================== END REBUILD LOG ====================
Failed to rebuild app.
Seems to be this related to this
I, [2024-07-03T21:28:32.470814 #1] INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate'
2024-07-03 21:28:41.149 UTC [982] discourse@discourse ERROR: column llm_models.url does not exist at character 47
2024-07-03 21:28:41.149 UTC [982] discourse@discourse STATEMENT: SELECT "llm_models".* FROM "llm_models" WHERE "llm_models"."url" = 'https://vllm.shadowed-by-srv.invalid' LIMIT 1
** PLUGIN FAILURE **
You are unable to start Discourse due to this error during plugin
initialization:
PG::UndefinedColumn: ERROR: column llm_models.url does not exist
LINE 1: SELECT "llm_models".* FROM "llm_models" WHERE "llm_models"."...
^
I added DISCOURSE_MAXMIND_ACCOUNT_ID: 0000 into app.yml (With the actual account ID) and it still errors with Zlib::BufError: buffer error (Zlib::BufError)
That’s allowed it to build as a workaround but can’t get it to build with it.
Does it matter which way DISCOURSE_MAXMIND_ACCOUNT_ID are listed in the config? Im going to rebuild it at some point testing having it above the license key,
Uncaught SyntaxError: Unexpected identifier '#t'
discourse-cakeday-14…0c79d9ecda.br.js:67 Uncaught SyntaxError: Unexpected identifier '#t'
discourse-gamificati…aa953738d0.br.js:26 Uncaught SyntaxError: Unexpected identifier '#a'
discourse-gamificati…cc07ea7ef08.br.js:3 Uncaught SyntaxError: Unexpected identifier '#a'
discourse-lazy-video…b8ed6127f2.br.js:10 Uncaught SyntaxError: Unexpected identifier '#t'
discourse-presence-f…3c0d7b6fc3.br.js:12 Uncaught SyntaxError: Unexpected identifier '#s'
discourse-reactions-…901cb11c9e5.br.js:9 Uncaught SyntaxError: Unexpected identifier '#t'
docker_manager_admin…d28929dca4.br.js:11 Uncaught SyntaxError: Unexpected identifier '#t'
poll-796d99d66969f1b…fe7802fab0d.br.js:4 Uncaught SyntaxError: Unexpected identifier '#e'
admin-67b2706032147c…37109c4686.br.js:79 Uncaught SyntaxError: Unexpected identifier '#r'
39e5219……a6253fbac792b5.js:9 Uncaught SyntaxError: Unexpected identifier '#t'
8e35ecd……431326f726d28.js:14 Uncaught SyntaxError: Unexpected identifier '#c'
80f289f……3ae3799840269e.js:7 Uncaught SyntaxError: Unexpected identifier '#t'
0ca3731……0183b04205b2c7.js:5 Uncaught SyntaxError: Unexpected identifier '#e'
chunk.2e73082f9f5aebde95db.d41d8cd9.br.js:65 ℹ️ Discourse v3.3.0.beta4-dev — https://github.com/discourse/discourse/commits/70fc39211b — Ember v5.5.0
mini-profiler-resources/results:1
Failed to load resource: the server responded with a status of 429 ()
mini-profiler-resources/results:1
Failed to load resource: the server responded with a status of 429 ()
mini-profiler-resources/results:1
Failed to load resource: the server responded with a status of 429 ()
mini-profiler-resources/results:1
Failed to load resource: the server responded with a status of 429 ()
mini-profiler-resources/results:1
Failed to load resource: the server responded with a status of 429 ()
mini-profiler-resources/results:1
Failed to load resource: the server responded with a status of 429 ()
mini-profiler-resources/results:1
Failed to load resource: the server responded with a status of 429 ()
vendor.696635918446fec08b0d1b3ff71b7e07-5130d00d5db8931b806390ef7c3a55b4e60b44924d23e28410b820d9541895fd.br.js:9 Uncaught (in promise) Error: There is no route named admin
at P.handlersFor (vendor.696635918446fec08b0d1b3ff71b7e07-5130d00d5db8931b806390ef7c3a55b4e60b44924d23e28410b820d9541895fd.br.js:9:384138)
at o.isActiveForRoute (vendor.696635918446fec08b0d1b3ff71b7e07-5130d00d5db8931b806390ef7c3a55b4e60b44924d23e28410b820d9541895fd.br.js:9:183474)
at ue.isActiveForState (vendor.696635918446fec08b0d1b3ff71b7e07-5130d00d5db8931b806390ef7c3a55b4e60b44924d23e28410b820d9541895fd.br.js:9:22532)
at get isActive (vendor.696635918446fec08b0d1b3ff71b7e07-5130d00d5db8931b806390ef7c3a55b4e60b44924d23e28410b820d9541895fd.br.js:9:21552)
at get class (vendor.696635918446fec08b0d1b3ff71b7e07-5130d00d5db8931b806390ef7c3a55b4e60b44924d23e28410b820d9541895fd.br.js:9:20303)
at Te (vendor.696635918446fec08b0d1b3ff71b7e07-5130d00d5db8931b806390ef7c3a55b4e60b44924d23e28410b820d9541895fd.br.js:9:76425)
at vendor.696635918446fec08b0d1b3ff71b7e07-5130d00d5db8931b806390ef7c3a55b4e60b44924d23e28410b820d9541895fd.br.js:9:266639
at vendor.696635918446fec08b0d1b3ff71b7e07-5130d00d5db8931b806390ef7c3a55b4e60b44924d23e28410b820d9541895fd.br.js:9:266302
at e.track (vendor.696635918446fec08b0d1b3ff71b7e07-5130d00d5db8931b806390ef7c3a55b4e60b44924d23e28410b820d9541895fd.br.js:9:345848)
at d (vendor.696635918446fec08b0d1b3ff71b7e07-5130d00d5db8931b806390ef7c3a55b4e60b44924d23e28410b820d9541895fd.br.js:9:266281)
at vendor.696635918446fec08b0d1b3ff71b7e07-5130d00d5db8931b806390ef7c3a55b4e60b44924d23e28410b820d9541895fd.br.js:9:302259
at vendor.696635918446fec08b0d1b3ff71b7e07-5130d00d5db8931b806390ef7c3a55b4e60b44924d23e28410b820d9541895fd.br.js:9:266302
at e.track (vendor.696635918446fec08b0d1b3ff71b7e07-5130d00d5db8931b806390ef7c3a55b4e60b44924d23e28410b820d9541895fd.br.js:9:345848)
at d (vendor.696635918446fec08b0d1b3ff71b7e07-5130d00d5db8931b806390ef7c3a55b4e60b44924d23e28410b820d9541895fd.br.js:9:266281)
at Je (vendor.696635918446fec08b0d1b3ff71b7e07-5130d00d5db8931b806390ef7c3a55b4e60b44924d23e28410b820d9541895fd.br.js:9:302493)
at Qe.flush (vendor.696635918446fec08b0d1b3ff71b7e07-5130d00d5db8931b806390ef7c3a55b4e60b44924d23e28410b820d9541895fd.br.js:9:301801)
at Object.evaluate (vendor.696635918446fec08b0d1b3ff71b7e07-5130d00d5db8931b806390ef7c3a55b4e60b44924d23e28410b820d9541895fd.br.js:9:295357)
at Object.evaluate (vendor.696635918446fec08b0d1b3ff71b7e07-5130d00d5db8931b806390ef7c3a55b4e60b44924d23e28410b820d9541895fd.br.js:9:282821)
at It.evaluateSyscall (vendor.696635918446fec08b0d1b3ff71b7e07-5130d00d5db8931b806390ef7c3a55b4e60b44924d23e28410b820d9541895fd.br.js:9:318887)
at It.evaluateInner (vendor.696635918446fec08b0d1b3ff71b7e07-5130d00d5db8931b806390ef7c3a55b4e60b44924d23e28410b820d9541895fd.br.js:9:318579)
at It.evaluateOuter (vendor.696635918446fec08b0d1b3ff71b7e07-5130d00d5db8931b806390ef7c3a55b4e60b44924d23e28410b820d9541895fd.br.js:9:318500)
at Wt.next (vendor.696635918446fec08b0d1b3ff71b7e07-5130d00d5db8931b806390ef7c3a55b4e60b44924d23e28410b820d9541895fd.br.js:9:328385)
at Wt._execute (vendor.696635918446fec08b0d1b3ff71b7e07-5130d00d5db8931b806390ef7c3a55b4e60b44924d23e28410b820d9541895fd.br.js:9:328263)
at Wt.execute (vendor.696635918446fec08b0d1b3ff71b7e07-5130d00d5db8931b806390ef7c3a55b4e60b44924d23e28410b820d9541895fd.br.js:9:328209)
at Qt.sync (vendor.696635918446fec08b0d1b3ff71b7e07-5130d00d5db8931b806390ef7c3a55b4e60b44924d23e28410b820d9541895fd.br.js:9:328863)
at hr.render (vendor.696635918446fec08b0d1b3ff71b7e07-5130d00d5db8931b806390ef7c3a55b4e60b44924d23e28410b820d9541895fd.br.js:9:51968)
at vendor.696635918446fec08b0d1b3ff71b7e07-5130d00d5db8931b806390ef7c3a55b4e60b44924d23e28410b820d9541895fd.br.js:9:55529
at Nt (vendor.696635918446fec08b0d1b3ff71b7e07-5130d00d5db8931b806390ef7c3a55b4e60b44924d23e28410b820d9541895fd.br.js:9:317369)
at gr._renderRoots (vendor.696635918446fec08b0d1b3ff71b7e07-5130d00d5db8931b806390ef7c3a55b4e60b44924d23e28410b820d9541895fd.br.js:9:55447)
at gr._renderRootsTransaction (vendor.696635918446fec08b0d1b3ff71b7e07-5130d00d5db8931b806390ef7c3a55b4e60b44924d23e28410b820d9541895fd.br.js:9:55807)
at gr._renderRoot (vendor.696635918446fec08b0d1b3ff71b7e07-5130d00d5db8931b806390ef7c3a55b4e60b44924d23e28410b820d9541895fd.br.js:9:55324)
at gr._appendDefinition (vendor.696635918446fec08b0d1b3ff71b7e07-5130d00d5db8931b806390ef7c3a55b4e60b44924d23e28410b820d9541895fd.br.js:9:54370)
at gr.appendOutletView (vendor.696635918446fec08b0d1b3ff71b7e07-5130d00d5db8931b806390ef7c3a55b4e60b44924d23e28410b820d9541895fd.br.js:9:54024)
at invoke (vendor.696635918446fec08b0d1b3ff71b7e07-5130d00d5db8931b806390ef7c3a55b4e60b44924d23e28410b820d9541895fd.br.js:9:358138)
at h.flush (vendor.696635918446fec08b0d1b3ff71b7e07-5130d00d5db8931b806390ef7c3a55b4e60b44924d23e28410b820d9541895fd.br.js:9:357215)
at p.flush (vendor.696635918446fec08b0d1b3ff71b7e07-5130d00d5db8931b806390ef7c3a55b4e60b44924d23e28410b820d9541895fd.br.js:9:358978)
at B._end (vendor.696635918446fec08b0d1b3ff71b7e07-5130d00d5db8931b806390ef7c3a55b4e60b44924d23e28410b820d9541895fd.br.js:9:364061)
Seems to be from here: class l extends t.default{static#e=(()=>dt7948.g(this.prototype,“collapsed”,[n.tracked],(function(){return!1})))()#r=(()=>{dt7948.i(this,“collapsed”)})()
My main question was why this only happens when updating an already-installed plugin and not when the plugin is newly installed. The answer is that core catchesPG::UndefinedTable exceptions but not PG:UndefinedColumn. If the plugin is already installed then the exception is the latter, if the plugin is brand new then it is the former.