Plugin Discourse solved lanza error 500

Recientemente actualicé mi versión de Discourse y todos mis complementos están actualizados.
Después de la actualización, ahora recibo un error 500 al intentar marcar una respuesta como solución.

A continuación, se detallan los errores que obtengo en la consola.

    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

¿Tienes instalados complementos no oficiales? ¿Funciona en modo seguro con solo complementos y temas oficiales?

Sí, tengo instalado un plugin no oficial y no he comprobado en modo seguro (no sé cómo hacerlo :noobface:).

Sin embargo, revisé los registros y mostraron lo siguiente:
ArgumentError (palabra clave desconocida: duration) /var/www/discourse/app/models/topic.rb:1138:in 'set_or_create_timer'
(Rastreo si te interesa: https://pastebin.com/chKtDTeL.)

Luego fui a la configuración de temas resueltos y establecí las horas de cierre automático en 0 (valor anterior 72) y ahora funciona, pero realmente quiero usar esta función. ¿Alguna ayuda?

simplemente ve a /safe-mode en tu sitio para acceder a la configuración del modo seguro. Se ve así:

Ok, alguien de mi equipo ya lo intentó.
· Desactivar plugins no oficiales (por ejemplo, nuestro plugin de insignias) no resolvió el problema.
· Desactivar nuestro tema (por ejemplo, JavaScript personalizado) no resolvió el problema.
· Desactivar plugins no oficiales y el tema juntos tampoco resolvió el problema.
Usando el modo seguro.

No intenté desactivar todos los plugins porque, ya sabes, eso también desactivaría la solución :grin:

¿Tienes algún complemento para Pavilion?

Parece estar relacionado con lo que encontré en los registros. La última actualización realizada por el autor del plugin es esta

No hay plugins de pavilion

Acabo de actualizar mi sitio personal a la última versión y activé el plugin solved, y funciona bien para mí. No puedo replicar el problema.

Creo que he encontrado el problema. Estamos en la versión estable (no en la predeterminada tests-passed), la cual aún no incluye el cambio de ‘duration’.

¡Gracias por investigar esto, lo aprecio mucho! Creo que simplemente esperaremos a que la rama estable se actualice para usar esta función.

Hola, tengo el mismo problema:

Versión de Discourse:

Mis extensiones:

Lo he intentado en modo seguro y ocurre lo mismo.

El registro de errores:
image

Mensaje

ArgumentError (palabra clave desconocida: duration)
/var/www/discourse/app/models/topic.rb:1138:in `set_or_create_timer'

Rastreo de la pila

/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'

Gracias por tu ayuda.

Hola a todos,
¿Tenéis tiempo para una idea?

Estás en una versión específica de Discourse que probablemente no tenga la función retrocompatibilizada. El plugin ‘solved’ funciona bien con la rama ‘tests-passed’ más reciente, así que considera actualizar a esa versión.

¿Por qué?
Estoy en una versión inestable.

Así que, si entiendo bien, ¿la versión estable no es una buena opción para un servidor de producción de Discourse?

  ## ¿Qué revisión de Git debe usar este contenedor? (predeterminado: tests-passed)
  version: stable

Es bueno, pero generalmente muy, muy antiguo y carece de nuevas funciones. Deberías usar realmente tests-passed, ya que es lo suficientemente estable y contiene todas las nuevas funciones y mejoras de rendimiento.

Ok, gracias por tu respuesta.

Hice una corrección ayer. ¿Podrías actualizar el plugin discourse-solved y confirmarme si el problema se ha solucionado para ti?

Hola @kris.kotlarek,
me parece bien con esta versión:

Gracias