The issue is an internal server error when setting tags via the API. Akki9326 shares error logs and parameters, including a NoMethodError and a Can't verify CSRF token authenticity error. sam suggests looking into reverse-engineering the Discourse API for help.
Akki9326 questions whether Discourse needs an X-CSRF-TOKEN when passing an API key. sam says the error is unrelated. Akki9326 shares another instance of a 500 error code when creating a topic from the Discourse portal.
david identifies a bug and suggests a workaround by setting the “Minimum number of tags required in a topic” to zero in the category preferences. However, Akki9326 says this setting does not exist. david clarifies the setting’s location.
Akki9326 confirms the workaround works. david mentions that the issue has been fixed thanks to a commit by @maja.
We are getting below error while posting creating topic using API. sometimes its working but most of the time is shows below error.
Started POST "/posts.json?api_key=[FILTERED]&username=saroj.barad&title=Test%20%20From%20saroj&category=7&raw=Test%20%20From%20saroj&tags%5B%5D=law&tags%5B%5D=randomnewtag" for 127.0.0.1 at 2018-10-22 06:31:44 +0000
Processing by PostsController#create as JSON
Parameters: {"api_key"=>"[FILTERED]", "username"=>"saroj.barad", "title"=>"Test From saroj", "category"=>"7", "raw"=>"Test From saroj", "tags"=>["law", "randomnewtag"]}
Can't verify CSRF token authenticity.
Completed 500 Internal Server Error in 124ms (ActiveRecord: 8.8ms)
NoMethodError (undefined method `>' for nil:NilClass)
/var/www/discourse/lib/discourse_tagging.rb:58:in `tag_topic_by_names'
Started POST "/posts.json" for 127.0.0.1 at 2018-10-22 06:32:27 +0000
Processing by PostsController#create as JSON
Parameters: {"title"=>"Test from saroj", "category"=>"7", "tags"=>["finance"], "api_key"=>"[FILTERED]", "api_username"=>"saroj.barad", "raw"=>"Test from saroj "}
Completed 500 Internal Server Error in 200ms (ActiveRecord: 8.0ms)
NoMethodError (undefined method `>' for nil:NilClass)
does discourse need X-CSRF-TOKEN?
if we pass “api key”. bcz we are sending api key in our request still it shows "Can’t verify CSRF token authentiity".
Thanks for your replies. But we are also getting 500 error code while creating topic from discourse portal.
Started POST "/posts" for 127.0.0.1 at 2018-10-22 10:08:19 +0000
Processing by PostsController#create as JSON
Processing by Presence::PresencesController#publish as */*
Parameters: {"previous"=>""}
Parameters: {"raw"=>"Good post", "title"=>"How does the Membership functionality work", "unlist_topic"=>"false", "category"=>"7", "is_warning"=>"false", "archetype"=>"regular", "typing_duration_msecs"=>"6200", "composer_open_duration_msecs"=>"179956", "shared_draft"=>"false", "nested_post"=>"true"}
Completed 200 OK in 10ms (Views: 0.2ms | ActiveRecord: 3.0ms)
Completed 500 Internal Server Error in 59ms (ActiveRecord: 9.6ms)
NoMethodError (undefined method `>' for nil:NilClass)
/var/www/discourse/lib/topic_creator.rb:161:in `setup_tags'
Hi @Akki9326, it looks like we have a bug here. To work around it for now, open up the preferences for the category, and set the “Minimum number of tags required in a topic” setting to zero.
We will look at getting this fixed so it can’t happen in the future.
Thank @david for your reply. but there is no settings like 'Minimum number of tags required in a topic".
for your info:
we are able to create a topic in other categories but error occurs on one specific category only named “CFO-Members”. we are able to create same topic in other categories.
Admin can create topic in that category (CFO-Members).
it would be greate for us if can you suggest any work around for the same.