1

OK

Deets:

EE 2.9.2
Assets 2.5
Structure 3.3.17
Tag 4.2.9
Matrix 2.6.1
Playa 4.5.2.

Those should be the only possible relative ones.

I spent half my morning trying to figure this one out. I have a member group that has access to a particular channel that lives in Structure. For channel fields, we have this variety going on for this channel:

Text
Matrix
Playa
Relationships

There are about 10 channel entries in this channel. Now, a Super Admin account can open the entry_form for all of these entries, and save channels entries, no problem. But the member group that is meant for editing these channel entries can only open some of the entries. About half of them pull a WSOD. I've gone through and compared working ones to non-working ones endlessly, and can't find a single consistent difference. Ex: Some have Wygwam fields with images in them, some don't, both varieties of entry work and don't work. Some have revisions turned on, some don't, both varieties of entry work and don't work. Some are authored by members of this member group, some are authored by our main content editor (whose member group has more privileges), both varieties of entry work and don't work.

After spending a painful amount of time comparing them, I moved on to the member group settings. Here's what I tried:

I created a temporary member group (duplicated from the one that I assumed was the issue). I then moved a member over to this temporary one, and then methodically went through the member group settings, and gradually escalated the groups privileges, until they were basically Super Admins, but to no avail. The main content editor is not a Super Admin, but she can view and edit all of the entries just fine.

Side note; we upgraded from 2.5.(3 or 5, can't remember) a few months ago, and I think this wasn't an issue before then.

At this point, I can only guess it's some setting related to individual entries, perhaps in the channel_title rows, but I glanced them and didn't see anything out of order (I'll check again). Can anyone suggest any other debug paths? This one is maddening. Thanks.

Edit

I duplicated the Super Admin group as a test group, and that test member group cannot view the channel entries that aren't working for the original problem member group. What the hell is going on here? Some addon has a weird conditional hardcoded for Super Admin (aka member_group == 1)? But yet another member group (main content editors member group) can also view and save all channels entries? WTF??

Edit

I have no new info, but this is still a persisting issue. I'm bumping it in hopes that a few other heavy-weights on this exchange can weigh in... I am very versed with digging through core files, but I'm at least looking for suggestions. I know I could turn on error logging and grep through it.. but the site in question is for a University that has 17 thousand students and probably several thousands employees and who knows how many interested potential students and employees.. so 10 seconds of that error/debug log can be 10's of thousands of lines and a pain to accurately grep. Hell, even if someone had a suggestion on what I'm looking for in the log files so I can craft a grep/regex to search the log...

Edit

Ok, I'm down to this error, popping on up on the test installation with debugging on:

Fatal error: Uncaught exception 'Exception' with message 'Assets could not complete the requested operation.' in /storage/av02422/www/public_html/test/control/expressionengine/third_party/assets/sources/ee/file.ee.php:43
Stack trace: #0 /storage/av02422/www/public_html/test/control/expressionengine/third_party/assets/sources/base_source.php(793): Assets_ee_file->__construct(66718, Object(Assets_ee_source), NULL) 
#1 /storage/av02422/www/public_html/test/control/expressionengine/third_party/assets/libraries/Assets_lib.php(1048): Assets_base_source->get_file(66718) 
#2 /storage/av02422/www/public_html/test/control/expressionengine/third_party/wygwam/helper.php(981): Assets_lib->get_file_by_id(Array) 
#3 /storage/av02422/www/public_html/test/control/expressionengine/third_party/wygwam/ft.wygwam.php(540): Wygwam_helper::replace_asset_tags('<h3>Upcom...') 
#4 /storage/av02422/www/public_html/test/control/expressionengine/fieldtypes/EE_Fieldtype.php(335): Wygwam_ft->display_field('<h3>Upcom...') 
#5 [internal function]: in /storage/av02422/www/public_html/test/control/expressionengine/third_party/assets/sources/ee/file.ee.php on line 43

I tracked down the code, and it's throwing an exception where a cache variable is empty in $this->EE->session->cache['assets']. Then I tracked down the rows by var_dumping and inserting die()'s ... the file in question hasn't been found yet (haven't grepped the folders yet), but based on it's file name it appears to be completely unrelated to the channel entry it's attached to (I'm working on one of several broken entries, others could have different issues).

I'm going to grep for the file name (err, i think find is better for this), and if I can't find it, remove those rows from the database in the test install. If that works, @Anna_MediaGirl probably gets the prize for pushing me the right way.

LAST EDIT

F***ing damnit. It was a malformed Wygwam field data cell. I just tried temporarily emptying and saving the Wygwam fields content, saving it, and pasting it back in, and now the trouble member group can open and edit the channel entry. WTF? Why do I even get paid? Thanks @Anna_MediaGirl. You win all 100 tacos.

It turns out those Wygwam fields did have links to Assets files. That was somehow related.

  • Do you get any error messages in the console tab when there is a WSOD? – Balloonatic Jul 24 '15 at 7:07
  • Nope :( stackoverflow.com/questions/1475297/phps-white-screen-of-death it's PHP puking hard on the server end for these particular channel entries. It results in an empty response (view source of the page shows an empty page). – jrothafer Jul 24 '15 at 11:18
  • Calling on all the heavy hitters @DerekHogue @ Robson @ Mediagirl, even at @ Blatant :P ... and thank you for your thought time @ Balloonatic, feel free to drop as many ideas here in comments/answers as possible. Truly appreciate it, amigo. – jrothafer Jul 24 '15 at 11:21
  • Maybe you could try to create a new empty channel and check the access on that. If that works, add fields from different types one by one until you get the WSOD. – Balloonatic Jul 24 '15 at 12:25
  • 1
    Oh Blatant, you should always stay a cycle behind and let other people suss out the bugs (especially when your site has 11.000+ pages...) it just came out a minute ago when we did the upgrade, also. I duplicated the problem member group, maybe I should create a blank new one, or start with a super admin one and break down the privileges... I'll recheck the privileges and file upload prefs! – jrothafer Jul 24 '15 at 12:58
0
+100

A white screen is 99% always a PHP error being suppressed.

Here's what I'd try.


FIRST, make sure this is set in your control panel's index.php or admin.php file to ensure you're seeing errors.

$debug = 1;

Also, set this in your config file just to be thorough:

$config['debug'] = '1';

NEXT, add this code to your config file and retest:

$config['allow_extensions'] = 'n';

If the error displays, it''ll point you in the right direction.


If no error, set the extensions back to being "enabled" and add this code to your config file and retest:

$config['disable_csrf_protection'] = 'y';

If you're able to get into the entries, then there is something inside the entry copy that EE is objecting to and you'll need to track down what that is. You can track it down by going into the database and manually removing the copy for each field specific to that entry and retesting. Once you find the field, you'll need to narrow down to the actual copy. I've had this happen with URLs that contain certain weird character combinations. EE doesn't run certain checks on SuperAdmin users which is why SuperAdmin can open the entries.

NOTE: Sometimes enabling debug isn't enough because an addon will turn off errors after the config file is loaded. Previously, I've had to edit the control panel's index.php or admin.php file to remove the conditional which shows/hides errors. I replaced it with the following code to show errors.

error_reporting(E_ALL);

Then I had to search all the EE files, including the 3rd party files, to find any other reference to errors display. Use the search term "error_reporting" for the search.

If you're not seeing an error, I'd say confidently something in code is suppressing it. It's probably an addon.


If all else fails, search all the EE files for "group_id" and "admin_sess". You're looking for any conditionals for the member group "1". Look at each conditional and if you can find the one that is stopping your entries from loading.

  • All excellent suggestions! I I'm 9-5 schlub in New England, so I'll start going through these suggestions tomorrow morning (or if the boss prefers, I may have to test these things on off hours, so tomorrow night). I may not be able to test turning extensions off, or will have to wait until next Wednesday night (the Universities normal "Maintenance Hours" for when we need to do these things). – jrothafer Aug 5 '15 at 23:47
  • Or pull the DB and EE files into a local dev environment to test there. I can help track it down if we can screenshare and you have a grep tool and an environment where we can make any changes we need to make. – Anna_MediaGirl Aug 6 '15 at 0:02
  • Just read "main content editor is not a Super Admin, but she can view and edit all of the entries just fine".... I was focused on this being a superadmin vs everyone else issue so this adds a twist. Could be related to something else that EE is checking like IPs or something but doesn't explain why it's inconsistent. Are you able to duplicate the issue when logged in as the users from different computers and networks? – Anna_MediaGirl Aug 6 '15 at 0:13
  • I haven't necessarily tried from machines on different IP ranges, but I did try different browsers with cleared cache. We actually have a dev installation of our main site, but I haven't tested it to see if the issue persists there (we keep it around for simply testing, not dev -> production implementation, so it's database is a little out of date, but almost certainly not this issue). – jrothafer Aug 6 '15 at 0:16
  • Let me see if this is going on in our test install (which is actually only the backend CP, no front end presentation files at all!). If so, we can perhaps work out a screen share (always fun!). I just have to check with my boss first, providing this issue exists on the dev site. He's also confoundedly confused about this one. – jrothafer Aug 6 '15 at 0:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.