Page MenuHomePhabricator

"Bad API response: NULL" when using OAuth
Closed, ResolvedPublic

Description

When using OAuth Hello World, I get "Bad API response: NULL" when I try to make an edit. Other tools, such as Widar, also appear to be broken by this.


Version: unspecified
Severity: major

Details

Reference
bz58380

Event Timeline

bzimport raised the priority of this task from to Unbreak Now!.Nov 22 2014, 2:15 AM
bzimport added a project: CirrusSearch.
bzimport set Reference to bz58380.

What wiki are you trying to edit? Also, can you please provide a sample page you are trying to edit?

[12-Dec-2013 14:23:23] Fatal error: Call to a member function isSpecial() on a non-object at /usr/local/apache/common-local/php-1.23wmf7/extensions/OAuth/api/MWOAuthAPI.setup.php on line 55
Server: mw1017
Method: POST
URL: http://test.wikipedia.org/w/api.php
Backtrace:
#0 /usr/local/apache/common-local/php-1.23wmf7/extensions/OAuth/api/MWOAuthAPI.setup.php(55): MWOAuthAPISetup::getOAuthAccessToken()
#1 /usr/local/apache/common-local/php-1.23wmf7/extensions/OAuth/api/MWOAuthAPI.setup.php(89): MWOAuthAPISetup::getOAuthAccessToken()
#2 [internal function]: MWOAuthAPISetup::onUserLoadFromSession(Object(User), NULL)
#3 /usr/local/apache/common-local/php-1.23wmf7/includes/Hooks.php(199): call_user_func_array('MWOAuthAPISetup...', Array)
#4 /usr/local/apache/common-local/php-1.23wmf7/includes/GlobalFunctions.php(4031): Hooks::run('UserLoadFromSes...', Array)
#5 /usr/local/apache/common-local/php-1.23wmf7/includes/User.php(935): wfRunHooks('UserLoadFromSes...', Array)
#6 /usr/local/apache/common-local/php-1.23wmf7/includes/User.php(297): User->loadFromSession()
#7 /usr/local/apache/common-local/php-1.23wmf7/includes/User.php(1743): User->load()
#8 /usr/local/apache/common-local/php-1.23wmf7/includes/User.php(2854): User->getId()
#9 /usr/local/apache/common-local/php-1.23wmf7/extensions/CirrusSearch/CirrusSearch.php(232): User->isLoggedIn()
#10 [internal function]: {closure}()
#11 /usr/local/apache/common-local/php-1.23wmf7/includes/Setup.php(591): call_user_func(Object(Closure))
#12 /usr/local/apache/common-local/php-1.23wmf7/includes/WebStart.php(153): require_once('/usr/local/apac...')
#13 /usr/local/apache/common-local/php-1.23wmf7/api.php(44): require('/usr/local/apac...')
#14 /usr/local/apache/common-local/w/api.php(3): require('/usr/local/apac...')
#15 {main}

(In reply to comment #0)

When using OAuth Hello World, I get "Bad API response: NULL" when I try to
make
an edit. Other tools, such as Widar, also appear to be broken by this.

Just to clarify on this, here's the workflow.

  1. Go to https://tools.wmflabs.org/oauth-hello-world/
  2. Authorise application: click "Authorize this application" and authorise it
  3. Make an edit: click "Post to your talk page"

The error is thrown on step 3. It tries to edit test.wikipedia.org and fails.

Change 100996 had a related patch set uploaded by Anomie:
Add ApiBeforeMain hook

https://gerrit.wikimedia.org/r/100996

Patch half of fix. Other half coming.

Change 100999 had a related patch set uploaded by Manybubbles:
More BetaFeatures check to hooks called later

https://gerrit.wikimedia.org/r/100999

Note that as presented in this stack trace and as being fixed this bug only effects wikis with Cirrus. That is a pretty sizable list, at this point, though.

Change 100996 merged by jenkins-bot:
Add ApiBeforeMain hook

https://gerrit.wikimedia.org/r/100996

Change 100999 merged by jenkins-bot:
Move BetaFeatures check to hooks called later

https://gerrit.wikimedia.org/r/100999

Change 101022 had a related patch set uploaded by Chad:
Add ApiBeforeMain hook

https://gerrit.wikimedia.org/r/101022

Change 101025 had a related patch set uploaded by Chad:
Add ApiBeforeMain hook

https://gerrit.wikimedia.org/r/101025

Change 101031 had a related patch set uploaded by Chad:
Add ApiBeforeMain hook

https://gerrit.wikimedia.org/r/101031

Change 101031 merged by jenkins-bot:
Add ApiBeforeMain hook

https://gerrit.wikimedia.org/r/101031

Change 101025 merged by jenkins-bot:
Add ApiBeforeMain hook

https://gerrit.wikimedia.org/r/101025

I've verified this working in beta. Waiting on deployment.

(In reply to comment #3)

  1. Go to https://tools.wmflabs.org/oauth-hello-world/
  2. Authorise application: click "Authorize this application" and authorise it
  3. Make an edit: click "Post to your talk page"

The error is thrown on step 3. It tries to edit test.wikipedia.org and fails.

Verified working now.

Change 101022 abandoned by Chad:
Add ApiBeforeMain hook

Reason:
wmf5 no longer needed.

https://gerrit.wikimedia.org/r/101022