Unable to make saves

When trying to save, I get a spinning cog, if I continue to select Save, it creates more cogs.

Date,Page,Function,Message
"2016-09-14 18:38:44","Display","Edit","Validation Complete and Passed"
"2016-09-14 18:38:44","Display","Edit","Display Edited"
"2016-09-14 18:38:44","DisplayGroup","Edit","IN"
"2016-09-14 18:38:44","DisplayGroup","Edit","OUT"
"2016-09-14 18:38:44","Xibo\Helper\Log","audit","Audit Trail message recorded for Display with id 1. Message: Display Edited"
"2016-09-14 18:38:44","displayDAO","modify","Delete Cache for display: display/1"
"2016-09-14 18:38:43","Display","Edit","IN"
"2016-09-14 18:38:38","DisplayProfile","LoadDefault","Load Default windows"
"2016-09-14 18:38:32","DisplayProfile","LoadDefault","Load Default windows"
"2016-09-14 18:38:32","Display","ValidateDisplays","Timed out display. Last Accessed: 2016-09-14 05:23:24. Time out: 2016-09-14 05:38:24"
"2016-09-14 18:38:32","User","DisplayList","SQL: SELECT display.displayid,     display.display,     displaygroup.description,     layout.layout,     display.loggedin,     IFNULL(display.lastaccessed, 0) AS lastaccessed,     display.inc_schedule,     display.licensed,     display.email_alert,     displaygroup.DisplayGroupID,     display.ClientAddress,     display.MediaInventoryStatus,     display.MacAddress,     display.client_type,     display.client_version,     display.client_code,     display.screenShotRequested,     display.storageAvailableSpace,     display.storageTotalSpace,     currentLayout.layout AS currentLayout,     currentLayout.layoutId AS currentLayoutId   FROM display     INNER JOIN lkdisplaydg ON lkdisplaydg.DisplayID = display.DisplayID     INNER JOIN displaygroup ON displaygroup.DisplayGroupID = lkdisplaydg.DisplayGroupID     LEFT OUTER JOIN layout ON layout.layoutid = display.defaultlayoutid     LEFT OUTER JOIN layout currentLayout ON currentLayout.layoutId = display.currentLayoutId WHERE displaygroup.IsDisplaySpecific = 1 ORDER BY displayid. Params: array (
  'displaygroupid' => 0,
  'display' => '',
  'macAddress' => '',
  'clientVersion' => '',
)."
"2016-09-14 18:38:30","display","","Retreiving list of displaygroups for admin with SQL: SELECT displaygroup.DisplayGroupID, displaygroup.DisplayGroup, displaygroup.IsDisplaySpecific, displaygroup.Description   FROM displaygroup  WHERE 1 = 1  AND displaygroup.IsDisplaySpecific = 0  ORDER BY displaygroup.DisplayGroup "
"2016-09-14 18:38:26","User","DisplayList","SQL: SELECT display.displayid,     display.display,     displaygroup.description,     layout.layout,     display.loggedin,     IFNULL(display.lastaccessed, 0) AS lastaccessed,     display.inc_schedule,     display.licensed,     display.email_alert,     displaygroup.DisplayGroupID,     display.ClientAddress,     display.MediaInventoryStatus,     display.MacAddress,     display.client_type,     display.client_version,     display.client_code,     display.screenShotRequested,     display.storageAvailableSpace,     display.storageTotalSpace,     currentLayout.layout AS currentLayout,     currentLayout.layoutId AS currentLayoutId   FROM display     INNER JOIN lkdisplaydg ON lkdisplaydg.DisplayID = display.DisplayID     INNER JOIN displaygroup ON displaygroup.DisplayGroupID = lkdisplaydg.DisplayGroupID     LEFT OUTER JOIN layout ON layout.layoutid = display.defaultlayoutid     LEFT OUTER JOIN layout currentLayout ON currentLayout.layoutId = display.currentLayoutId WHERE displaygroup.IsDisplaySpecific = 1 ORDER BY display. Params: array (
)."

Display Dump

DisplayID: 1
Display: TGI-SPARE02
Default Layout:
Logged In: 0
Last Accessed: 1473873804
Interleave: 0
Licensed: 0

Sorry for the delay - what version are you using please?

1.7.8

I am thinking the issue may be related to mcrypt. Does that sound correct?

Xibo does use mcrypt, but only for password hashing in 1.7 series, so do not think it likely to be a mcrypt problem. That being said, multiple cogs means that the Save request is failing in an unexpected way and returning a broken response to the web page.

By far the easiest way to find out what that response looks like is to open developer tools in your browser and inspect the request (in Chrome this is on the Network->XHR tab of developer tools).

If you aren’t familiar with that, then you could also try to put your CMS into “test” mode, which should output the full error instead of the cog