Plugin Discourse solved che genera un errore 500

Ho recentemente aggiornato la mia versione di Discourse e tutti i miei plugin sono aggiornati.
Dopo l’aggiornamento, ottengo un errore 500 quando provo a contrassegnare una risposta come soluzione.

Di seguito i dettagli dell’errore che ricevo nella console.

    Failed to load resource: the server responded with a status of 500 ()
_application-ed0ac69…88e883e0db.js:11141 SyntaxError: Unexpected token < in JSON at position 0
    at Function.parse [as parseJSON] (<anonymous>)
    at n (_application-ed0ac69…88e883e0db.js:11137)
    at e.popupAjaxError (_application-ed0ac69…88e883e0db.js:11180)
    at E (ember_jquery-8e338e1…8f98e499a037a9.js:1)
    at w (ember_jquery-8e338e1…8f98e499a037a9.js:1)
    at g (ember_jquery-8e338e1…8f98e499a037a9.js:1)
    at t.invoke (ember_jquery-8e338e1…8f98e499a037a9.js:1)
    at e.t.flush (ember_jquery-8e338e1…8f98e499a037a9.js:1)
    at e.t.flush (ember_jquery-8e338e1…8f98e499a037a9.js:1)
    at e.t._end (ember_jquery-8e338e1…8f98e499a037a9.js:1)
ember_jquery-8e338e1…8f98e499a037a9.js:1 Uncaught 
Object
jqXHR: {readyState: 4, getResponseHeader: ƒ, getAllResponseHeaders: ƒ, setRequestHeader: ƒ, overrideMimeType: ƒ, …}
textStatus: "error"
errorThrown: ""
_discourse_displayed: true
__proto__: Object

Hai installato plugin non ufficiali? Funziona in modalità provvisoria con solo plugin e temi ufficiali?

Sì, ho installato un plugin non ufficiale e non ho controllato in modalità sicura (non so come farlo :noobface:)

Tuttavia, ho controllato i log e hanno mostrato questo:
ArgumentError (parola chiave sconosciuta: duration) /var/www/discourse/app/models/topic.rb:1138:in 'set_or_create_timer'

(Backtrace se sei interessato: https://pastebin.com/chKtDTeL.)

Poi sono andato alle impostazioni risolte e ho impostato le ore di chiusura automatica a 0 (valore precedente 72) e ora funziona, ma vorrei davvero usare questa funzione. Qualche aiuto?

Vai semplicemente a /safe-mode sul tuo sito per accedere alle impostazioni della modalità sicura. Si presenta così:

Ok, qualcuno del mio team ha già provato questo
· Disabilitare i plugin non ufficiali (ad esempio, il nostro plugin dei badge) non ha risolto il problema.
· Disabilitare il nostro tema (ad esempio, JavaScript personalizzato) non ha risolto il problema.
· Disabilitare insieme i plugin non ufficiali e il tema non ha risolto il problema.
Usando la modalità sicura.

Non ho provato a disabilitare tutti i plugin perché, sai, questo disabiliterebbe anche le soluzioni già trovate :grin:

Avete qualche plugin per Pavilion?

Sembra correlato a quanto ho trovato nei log. L’ultimo aggiornamento effettuato dall’autore del plugin è questo:

Nessun plugin da pavilion

Ho appena aggiornato il mio sito personale all’ultima versione e attivato il plugin “solved”, e per me funziona correttamente. Non riesco a replicare il problema.

Penso di aver individuato il problema. Siamo sulla versione stabile (non quella predefinita tests-passed), che non include ancora la modifica relativa a ‘duration’.

Grazie per averci dato un’occhiata, lo apprezziamo davvero! Penso che aspetteremo semplicemente che il ramo stabile venga aggiornato per utilizzare questa funzionalità.

Ciao, ho lo stesso problema:

Versione di Discourse:

Le mie estensioni:

Ho provato in modalità sicura, ma il problema persiste.

Il log:
image

Messaggio

ArgumentError (parametro sconosciuto: duration)
/var/www/discourse/app/models/topic.rb:1138:in `set_or_create_timer'

Backtrace

/var/www/discourse/app/models/topic.rb:1138:in `set_or_create_timer'
/var/www/discourse/plugins/discourse-solved/plugin.rb:126:in `accept_answer!'
/var/www/discourse/plugins/discourse-solved/plugin.rb:206:in `accept'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/abstract_controller/base.rb:196:in `process_action'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/action_controller/metal/rendering.rb:30:in `process_action'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/abstract_controller/callbacks.rb:42:in `block in process_action'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.1/lib/active_support/callbacks.rb:135:in `run_callbacks'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/abstract_controller/callbacks.rb:41:in `process_action'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/action_controller/metal/rescue.rb:22:in `process_action'

Grazie per il vostro aiuto.

Ciao a tutti,
hai tempo per un’idea?

Stai utilizzando una versione specifica di Discourse che probabilmente non ha la funzionalità backportata. Il plugin ‘solved’ funziona correttamente con l’ultima branch ‘tests-passed’, quindi considera l’aggiornamento a quella.

Perché?
Sto usando una versione non stabile.

Quindi, se ho capito bene, la versione stabile non è adatta per un server di produzione di Discourse???

  ## Quale revisione Git dovrebbe usare questo container? (predefinito: tests-passed)
  version: stable

È buono, ma generalmente molto vecchio e privo di nuove funzionalità. Dovresti davvero utilizzare tests-passed, poiché è abbastanza stabile e contiene tutte le nuove funzionalità e i miglioramenti delle prestazioni.

Ok, grazie per la risposta.

Ho apportato una correzione ieri. Potresti aggiornare il plugin discourse-solved e confermare se il problema è stato risolto per te?

Ciao @kris.kotlarek,
questa versione va bene per me:

Grazie