重新排序类别会产生错误422

I have a category with 27 sub-categories. When I try to reorder them, I receive “422 Unprocessable Entity” upon saving.

I haven’t been able to reproduce this. Can you try reordering the categories with your browser’s inspector open to its console tab and see if any more details about the error show up there?

2 个赞

I can’t do that now, but will ASAP. In the meantime, I upgraded to the latest Discourse 2.4.0.beta5 (302e8f4393) and the 422 error evolved to 422 No Reason Phrase.

I also get that error when trying to reorder the categories. What can I do?

Thank you very much.

In the meantime I upgrade to 2.4.0.beta7 (15f6f57cdc), and found an error log complaining that “Failed to handle exception in exception app middleware : Validation failed: Auto close hours must be greater than 0”.

There must have been an issue at some point with my multisite setup that broke some migrations for this site specifically, since others do not show this 422 error.

1 个赞

In the moment, is have the same error but mine is named only “422 error”.
This error comes only when i will order the categories new.

This is the code from my console in Firefox.

> _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:72538 [DEPRECATION] `ember-addons/ember-computed-decorators` is deprecated. Please use `discourse-common/utils/decorators` instead.
(anonymous) @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:72538
_application-23de447831b30f899d0d24c783c7e5d428fab93934bb0b9486ccf28d1adafb26.js:393

> Deprecation notice: `app-events:main` has been replaced with `service:app-events` (deprecated since Discourse 2.4.0)
e.default @ _application-23de447831b30f899d0d24c783c7e5d428fab93934bb0b9486ccf28d1adafb26.js:393
_application-23de447831b30f899d0d24c783c7e5d428fab93934bb0b9486ccf28d1adafb26.js:393

> Deprecation notice: Import the Site class instead of using Discourse.Site (deprecated since Discourse 2.4.0) (removal in Discourse 2.6.0)
e.default @ _application-23de447831b30f899d0d24c783c7e5d428fab93934bb0b9486ccf28d1adafb26.js:393
_application-23de447831b30f899d0d24c783c7e5d428fab93934bb0b9486ccf28d1adafb26.js:393 

> Deprecation notice: Import the User class instead of using User (deprecated since Discourse 2.4.0) (removal in Discourse 2.6.0)
e.default @ _application-23de447831b30f899d0d24c783c7e5d428fab93934bb0b9486ccf28d1adafb26.js:393
/categories/reorder:1

> Failed to load resource: the server responded with a status of 422 ()
_application-23de447831b30f899d0d24c783c7e5d428fab93934bb0b9486ccf28d1adafb26.js:12512 

>SyntaxError: Unexpected token < in JSON at position 0
    at Function.parse [as parseJSON] (<anonymous>)
    at n (_application-23de447831b30f899d0d24c783c7e5d428fab93934bb0b9486ccf28d1adafb26.js:12508)
    at e.popupAjaxError (_application-23de447831b30f899d0d24c783c7e5d428fab93934bb0b9486ccf28d1adafb26.js:12551)
    at g (_ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:70136)
    at k (_ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:70309)
    at C (_ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:70295)
    at w (_ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:70231)
    at t.invoke (_ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:64637)
    at e.t.flush (_ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:64527)
    at e.t.flush (_ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:64731)
n @ _application-23de447831b30f899d0d24c783c7e5d428fab93934bb0b9486ccf28d1adafb26.js:12512
_ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:37064 

>Uncaught Object
_ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:9851 

> POST https://forum.fktt-module.eu/categories/reorder 422
send @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:9851
ajax @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:9448
i @ _application-23de447831b30f899d0d24c783c7e5d428fab93934bb0b9486ccf28d1adafb26.js:10537
(anonymous) @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:70335
n @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:70843
o @ _application-23de447831b30f899d0d24c783c7e5d428fab93934bb0b9486ccf28d1adafb26.js:10551
saveOrder @ _application-23de447831b30f899d0d24c783c7e5d428fab93934bb0b9486ccf28d1adafb26.js:37261
t._join @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:65342
t.join @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:65053
p @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:51878
(anonymous) @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:20563
r @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:48299
(anonymous) @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:20562
click @ _application-23de447831b30f899d0d24c783c7e5d428fab93934bb0b9486ccf28d1adafb26.js:48012
trigger @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:44318
e @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:41789
t._run @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:65360
t._join @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:65336
t.join @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:65053
p @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:51878
(anonymous) @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:44419
r @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:48299
handleEvent @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:44415
handleEvent @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:43352
(anonymous) @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:43742
dispatch @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:5251
v.handle @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:5058
_application-23de447831b30f899d0d24c783c7e5d428fab93934bb0b9486ccf28d1adafb26.js:12512 

> SyntaxError: Unexpected token < in JSON at position 0
    at Function.parse [as parseJSON] (<anonymous>)
    at n (_application-23de447831b30f899d0d24c783c7e5d428fab93934bb0b9486ccf28d1adafb26.js:12508)
    at e.popupAjaxError (_application-23de447831b30f899d0d24c783c7e5d428fab93934bb0b9486ccf28d1adafb26.js:12551)
    at g (_ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:70136)
    at k (_ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:70309)
    at C (_ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:70295)
    at w (_ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:70231)
    at t.invoke (_ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:64637)
    at e.t.flush (_ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:64527)
    at e.t.flush (_ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:64731)
n @ _application-23de447831b30f899d0d24c783c7e5d428fab93934bb0b9486ccf28d1adafb26.js:12512
e.popupAjaxError @ _application-23de447831b30f899d0d24c783c7e5d428fab93934bb0b9486ccf28d1adafb26.js:12551
g @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:70136
k @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:70309
C @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:70295
w @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:70231
t.invoke @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:64637
t.flush @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:64527
t.flush @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:64731
t._end @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:65307
t.end @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:64993
t._run @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:65362
t.run @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:65042
h @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:51824
r.error @ _application-23de447831b30f899d0d24c783c7e5d428fab93934bb0b9486ccf28d1adafb26.js:10517
n @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:3305
fireWith @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:3435
l @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:9549
(anonymous) @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:9799
load (async)
send @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:9818
ajax @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:9448
i @ _application-23de447831b30f899d0d24c783c7e5d428fab93934bb0b9486ccf28d1adafb26.js:10537
(anonymous) @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:70335
n @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:70843
o @ _application-23de447831b30f899d0d24c783c7e5d428fab93934bb0b9486ccf28d1adafb26.js:10551
saveOrder @ _application-23de447831b30f899d0d24c783c7e5d428fab93934bb0b9486ccf28d1adafb26.js:37261
t._join @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:65342
t.join @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:65053
p @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:51878
(anonymous) @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:20563
r @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:48299
(anonymous) @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:20562
click @ _application-23de447831b30f899d0d24c783c7e5d428fab93934bb0b9486ccf28d1adafb26.js:48012
trigger @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:44318
e @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:41789
t._run @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:65360
t._join @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:65336
t.join @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:65053
p @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:51878
(anonymous) @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:44419
r @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:48299
handleEvent @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:44415
handleEvent @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:43352
(anonymous) @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:43742
dispatch @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:5251
v.handle @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:5058
_ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:37064 Uncaught {jqXHR: {…}, textStatus: "error", errorThrown: "", _discourse_displayed: true}
o @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:37064
trigger @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:69993
(anonymous) @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:70854
t.invoke @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:64635
t.flush @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:64527
t.flush @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:64731
t._end @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:65307
t.end @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:64993
t._run @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:65362
t.run @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:65042
h @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:51824
r.error @ _application-23de447831b30f899d0d24c783c7e5d428fab93934bb0b9486ccf28d1adafb26.js:10517
n @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:3305
fireWith @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:3435
l @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:9549
(anonymous) @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:9799
load (async)
send @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:9818
ajax @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:9448
i @ _application-23de447831b30f899d0d24c783c7e5d428fab93934bb0b9486ccf28d1adafb26.js:10537
(anonymous) @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:70335
n @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:70843
o @ _application-23de447831b30f899d0d24c783c7e5d428fab93934bb0b9486ccf28d1adafb26.js:10551
saveOrder @ _application-23de447831b30f899d0d24c783c7e5d428fab93934bb0b9486ccf28d1adafb26.js:37261
t._join @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:65342
t.join @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:65053
p @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:51878
(anonymous) @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:20563
r @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:48299
(anonymous) @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:20562
click @ _application-23de447831b30f899d0d24c783c7e5d428fab93934bb0b9486ccf28d1adafb26.js:48012
trigger @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:44318
e @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:41789
t._run @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:65360
t._join @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:65336
t.join @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:65053
p @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:51878
(anonymous) @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:44419
r @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:48299
handleEvent @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:44415
handleEvent @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:43352
(anonymous) @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:43742
dispatch @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:5251
v.handle @ _ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:5058

Hope I can help you.
1 个赞

I’ve just started to experience this issue today too on 2.4.0.beta8

Doesn’t seem to be any correlation between whether the category had sub-categories or not, some categories throw the 422 error even once the sub-categories have been deleted.

@Tom_Newhouse, @Taunusbahner, do you have a warning in the logs that "Auto close hours must be greater than 0”?

I edited a category in another forum recently, and the auto-close was set to zero. I removed the 0 and could save.

I think I found the solution.

In my case, the Uncategorized category had a 0 auto-close hours set, which prevented the category order from being saved: Editing the Uncategorized category and removing this 0 entry solved it!

I guess this 0 was introduced when the auto-close hours configuration setting first appeared, and it was set to zero (instead of left nil). This works for me, hopefully it will solve your problem as well.

This topic should be moved to support and this post chosen as the solution, unless the team wants to ensure this won’t happen again and track down the bug to fix it programmatically.

4 个赞

No sign of that error and the “Auto-close topic hours” field is already blank on my side.

Been doing some more testing with this and still experiencing the issue.

After browsing the database it appears that there are several category position ID clashes which don’t correlate to what is being shown in the “Reorder Categories” UI itself.

Could this be the cause of the issue and, if so, how do we solve it?

1 个赞

今天我重新检查了错误,但仍未找到解决方案。

Discourse 版本:2.4.0.beta9
已安装的插件:

||名称 | 版本 | 是否激活?||
| --- | --- | --- | --- | --- |
||[discourse-chat-integration](https://github.com/discourse/discourse-chat-integration)|0.1|是||

[discourse-formatting-toolbar](https://github.com/iunctis/discourse-formatting-toolbar.git) 3.2 是

[discourse-merge-users](https://github.com/curiousdannii/discourse-merge-users) 0.1.0 是
[discourse-mlm-daily-summary](https://www.github.com/joebuhlig/discourse-mlm-daily-summary) 0.1 是

[discourse-telegram-notifications](https://github.com/davidtaylorhq/discourse-telegram-notifications) 0.1 是

[discourse-translator](https://github.com/tgxworld/discourse-translator) 0.2.0 否

[discourse-whos-online](https://github.com/davidtaylorhq/discourse-whos-online) 1.0 是

[docker_manager](https://github.com/discourse/docker_manager) 0.1 是

日志中仅包含以下错误。

错误:无原因短语 网址:https://forum… assets/ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js 行:1 列:262166 窗口位置:https://forum.

ActiveRecord::RecordInvalid(验证失败:slug 无效)/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.1/lib/active_record/validations.rb:81:in `raise_validation_er

在异常应用中间件中处理异常失败:验证失败:slug 无效

请在 安全模式 下尝试,以排除插件带来的任何疑虑。

请尝试使用浏览器的控制台日志…

这可能是问题所在。您是否有分类的 slug 全是数字?如果是,您能否将该分类的 slug 编辑为其他内容?

2 个赞

各位用户,

同时,我已经找到了我的问题,或者至少我是这么认为的。

在遇到这些问题之前,我从 Yahoo 导入了超过 25000 个主题。
这个分类是否对 Discourse 来说太大了,难以处理?
在我删除这个分类后,论坛运行得就很顺畅了。

重排序算法的批量处理有上限吗?我预计这个功能会由后台任务处理,@simon

Discourse 代码中未设置可重排类别数量的限制。该操作并非由后台任务处理。我认为出现 422 错误的原因是 reorder 代码调用了 cat.save!。例如,您遇到的问题出在一个“自动关闭小时数”设置为 0 的类别上。这是一个无效设置,因此保存该类别时抛出了错误。

似乎尝试重排大量类别也可能导致错误。

3 个赞

我遇到了这个问题。

我没有启用“允许未分类主题”设置。当我允许未分类主题后,重新排序的保存功能就正常工作了。

3 个赞

我将关闭此问题,因为已经找到了几个解决方案/解决办法。如果有人遇到类似问题,请创建一个新主题。