Solution was to save entries until the entries with "bad data" were saved over.
I wrote a quick tag to display all entries in a list from a particular channel. However, it threw a bunch of PHP warnings. This is the tag.
<ul>
{exp:channel:entries disable="categories|pagination|member_data" channel='member' dynamic='off'}
<li><a href="{page_url}">{title}</a></li>
{/exp:channel:entries}
</ul>
In my first round of troubleshooting I found that if I limited the loop to a certain number (let's say 27) of entries the tag would render as expected. But if I'd change the limit to 28, the error would throw. I would assume that this means there is corrupt data in some entries... but not all?
I've since discovered that if I disabled custom fields the tag would render. Further troubleshooting led me to start disabling/uninstalling fieldtypes. After much of trial and error it seems that any fieldtype that has data stored in the database will cause the php warnings.
Now, what is odd (to me) is that if I declare a specific entry id's there is not an error. These entries include ones that are known to instigate the php errors.
entry_id="642|643|644|646|647|648"
There is definitely something awry in the database, I don't see anything that jumps out at me when I take a look at the sql, but I don't have the best mySQL skills.
Where do I look next?
The errors read as following:
A PHP Error was encountered Severity: Notice Message: Undefined index: Filename: channel/mod.channel.php Line Number: 4785
A PHP Error was encountered Severity: Warning Message: Invalid argument supplied for foreach() Filename: channel/mod.channel.php Line Number: 4787
A PHP Error was encountered Severity: Warning Message: Cannot modify header information - headers already sent by (output started at /***/system/codeigniter/system/core/Exceptions.php:170) Filename: core/Common.php Line Number: 412
Fatal error: ob_start() [ref.outcontrol]: Cannot use output buffering in output buffering display handlers in /***/system/codeigniter/system/core/Exceptions.php on line 166
System facts
updated to 2.5.5
Errors happen locally and on live servers Have around a thousand entries, so saving each one isn't a great option