Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.


Our old forums are still available as a read-only archive.

Moderators: martimiz, Sean, biapar, Willr, Ingo, simon_w

2.1 upgrade -> CMS log-ing = FATAL ERROR

Go to End

13 Posts   5402 Views


3 October 2007 at 1:28pm 6 Posts

I recently upgraded to v2.1 on a server running PHP 5.2. The install ran without any errors and all seemed good. I was able to view the updated CMS using a browser that was previously logged in to the Admin/CMS section.

After logging out when I attempted to log in I received the following error:

Fatal error: Call to undefined method stdClass::can() in /home/.furbag/username/ on line 89

I have found the same error when attempting to log in with other browsers.

Has anyone experienced this error or can anyone offer potential solutions?

Thanks in advance for your help!


12 October 2007 at 2:00am 4 Posts

"Mn" try to drop silverstripe database and then run install.php again.


12 October 2007 at 4:45am 6 Posts

That seems contrary to the idea of "upgrading". I don't want to delete my existing data.

Everything seems to be working correctly other than being able to log in to the admin tool.

Has anyone else experienced this problem?

Basically I upgraded to 2.1 and now I can't log in to the admin tool. When attempting to log in I receive the following error:

Fatal error: Call to undefined method stdClass::can() in /home/.furbag/username/ on line 89


24 October 2007 at 9:47am 3 Posts

try doing a mysql dump, backup database, clean install SS and then load saved data on the database

this is only an idea since I'm not using SS yet


24 October 2007 at 8:13pm Forum Moderator, 628 Posts

Sorry to hear you're having troubles...
Did you clear the cache? ( /tmp/silverstripe-cache/* )
I'll see if I can get anyone else to shed some light ....


24 October 2007 at 8:23pm (Last edited: 24 October 2007 8:25pm), Forum Moderator, 921 Posts

I myself don't know the problem here, but looking at line 89:

if($this->dataRecord && !$this->dataRecord->can('View'))

It appears stdClass is appearing, whatever that is, when it should've picked up a SiteTree class (or subclass) instead?

After doing some digging in the source browser, I found this changeset (related to stdClass):


Not sure if that helps.

Does this mean anything to anyone reading this?



25 October 2007 at 9:35am 230 Posts

Try changing:

if($this->dataRecord && !$this->dataRecord->can('View'))


if($this->dataRecord && method_exists($this->dataRecord, 'can') && !$this->dataRecord->can('View'))

and see if that fixes it. I'm not sure where stdClass is coming from though..


26 October 2007 at 3:47pm (Last edited: 26 October 2007 3:48pm), Core Development Team, 84 Posts

You don't have a homepage (page with URLSegment = 'home' or a page with HomepageForDomain set appropriately) that SilverStripe can find. It's a known problem to do with the new access rights for pages that Marcus did for GSoC.

edit: That's the most common cause at any rate.

Go to Top