Monday, May 12, 2014

SharePoint 2013 Announcement Body vanishes

I’ve been investigating a weird issue in SharePoint 2013 today. The issue was first seen in our live news & events system which uses multiple Announcement apps and some workflows to copy announcements between business units. It looks like a reinvention of the built-in Audiences feature to me, but that’s a different issue.

I’ve also reproduced it in our Test farm and on my single-box dev farm.

The symptom is that an Announcement’s Body text vanishes from the built-in item details page. This only happens for our staff users, who have Contribute rights to the list. My admin user account has Full Control and can always see the Body text.

The other columns, such as the Title, are unaffected. The staff user can always see these. It’s just Body that vanishes. I added another multi-line text column, called Body2, and this doesn’t exhibit the behaviour: it behaves itself perfectly.

It also only reproduces on the item’s details page. The same staff user can see and edit the Body in the edit page and can see the Body if the column is added to the All Items view, for example. It still won’t show up in the item details page though.

Our Announcement app also has a custom column which is a multi-value lookup over a Custom List which contains our business unit names and site URLs. The issue only reproduces where 2 or more business units (that is, lookup values) are selected for the announcement. I can even edit the item, switching between having one or two business units in the lookup field, to make the Body text vanish and reappear.

At first I assumed it was some custom CSS hack that had gone wonky or a weird side-effect of workflow and/or draft versions, but I eliminated each of these in turn until I got to an out of the box reproduction using just an Announcement app, a custom list and a multi-value lookup column.

No idea what might be causing it. I guess I’ll work around it by hiding the Body column somehow and using my own multi-line text column instead.