Error adding a display

I want to add a client to CMS and I can’t do this. The message that appears on the client is: “Display is awaiting licensing approval from Administrator”, but in CMS it doesn’t appear. I want to mention that this client was added to the CMS in the past and worked fine, but I removed it for some tests. From the client I can access the CMS with “Display Admin”.
I tried to change the Display ID many times but no effect. When I search in phpmyadmin in the database, I can see the display there, a record for any time when I modified Display ID. From what I see these are the main differences: MediaInventoryStatus which is “0”, WakeOnLanTime - “NULL”, broadcast address - “NULL”, Secure On - “NULL”, GeoLocation-“NULL”.
Version 1.7.6 on both machines.

Did you change it in client options (advanced tab) or do you mean that you made changes directly in database?
Are you certain that there are no other players (or display groups) with the same name?
Did you also try to clear your browser cache (just in case) or restart your web server? (just in case)
Anything in particular in CMS logs? (assuming you already enabled them)

Yes, I changed it in client options(advanced tab).
There are no other players and display groups.
I just removed all cookies for 127.0.0.1(it was only one, something about the datbase) and still doesn’t work. I restarted the web server.
The interesting fact when I am trying to connect is that first time when I press Save it says “Error adding display” and when I press again it says “Display is awaiting licensing approval from Administrator”. This thing is not happening normally.
I am looking now in logs and it has some errors. I tried to connect for two times and second time I changed the Display ID. I’ll put the log here:

"2016-02-17 15:51:11","DisplayProfile","LoadDefault","Load Default windows"
"2016-02-17 15:51:11","Display","ValidateDisplays","Timed out display. Last Accessed: 2016-01-28 08:58:59. Time out: 2016-01-28 09:00:09"
"2016-02-17 15:51:11","DisplayProfile","LoadDefault","Load Default windows"
"2016-02-17 15:51:11","Display","ValidateDisplays","Timed out display. Last Accessed: 2016-02-11 03:00:31. Time out: 2016-02-11 03:01:41"
"2016-02-17 15:51:11","DisplayProfile","LoadDefault","Load Default windows"
"2016-02-17 15:51:11","Display","ValidateDisplays","Timed out display. Last Accessed: 2016-02-15 11:20:14. Time out: 2016-02-15 11:21:24"
"2016-02-17 15:51:11","DisplayProfile","LoadDefault","Load Default windows"
"2016-02-17 15:51:11","Display","ValidateDisplays","Timed out display. Last Accessed: 2016-02-15 10:01:21. Time out: 2016-02-15 10:02:31"
"2016-02-17 15:51:11","DisplayProfile","LoadDefault","Load Default windows"
"2016-02-17 15:51:11","Display","ValidateDisplays","Timed out display. Last Accessed: 2016-02-17 02:42:55. Time out: 2016-02-17 02:44:05"
"2016-02-17 15:51:11","DisplayProfile","LoadDefault","Load Default windows"
"2016-02-17 15:51:11","DisplayProfile","LoadDefault","Load Default windows"
"2016-02-17 15:51:11","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-02-17 15:51:10","display","","Retreiving list of displaygroups for xibo 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-02-17 15:51:08","XMDSSoap4","RegisterDisplay","serverKey: y6QX70, hardwareKey: 07a9d804e9005f4415a8e9425a04f8c7, displayName: VIPER-PC"
"2016-02-17 15:51:08","Display","Touch","IN"
"2016-02-17 15:51:08","Data Module","SetError","Data Class: Error Number [25004] Error Message [Cannot find display record]"
"2016-02-17 15:51:08","","","Data Class: Error Number [25004] Error Message [Cannot find display record]"
"2016-02-17 15:51:07","Data Module","SetError","Data Class: Error Number [-1] Error Message [Can not have a display without a name]"
"2016-02-17 15:51:06","XMDSSoap4","RegisterDisplay","serverKey: y6QX70, hardwareKey: 07a9d804e9005f4415a8e9425a04f8c7, displayName: VIPER-PC"
"2016-02-17 15:51:06","Display","Add","IN"
"2016-02-17 15:51:06","","","<errormsg>Use of undefined constant displayId - assumed 'displayId'</errormsg>
<errornum>8</errornum>
<errortype>Notice</errortype>
<scriptname>C:\xampp\htdocs\xibo\lib\data\display.data.class.php</scriptname>
<scriptlinenum>193</scriptlinenum>
"
"2016-02-17 15:50:58","DisplayProfile","LoadDefault","Load Default windows"
"2016-02-17 15:50:58","Display","ValidateDisplays","Timed out display. Last Accessed: 2016-01-28 08:58:59. Time out: 2016-01-28 09:00:09"
"2016-02-17 15:50:58","DisplayProfile","LoadDefault","Load Default windows"
"2016-02-17 15:50:58","Display","ValidateDisplays","Timed out display. Last Accessed: 2016-02-11 03:00:31. Time out: 2016-02-11 03:01:41"
"2016-02-17 15:50:58","DisplayProfile","LoadDefault","Load Default windows"
"2016-02-17 15:50:58","Display","ValidateDisplays","Timed out display. Last Accessed: 2016-02-15 11:20:14. Time out: 2016-02-15 11:21:24"
"2016-02-17 15:50:58","DisplayProfile","LoadDefault","Load Default windows"
"2016-02-17 15:50:58","Display","ValidateDisplays","Timed out display. Last Accessed: 2016-02-15 10:01:21. Time out: 2016-02-15 10:02:31"
"2016-02-17 15:50:58","DisplayProfile","LoadDefault","Load Default windows"
"2016-02-17 15:50:58","Display","ValidateDisplays","Timed out display. Last Accessed: 2016-02-17 02:42:55. Time out: 2016-02-17 02:44:05"
"2016-02-17 15:50:58","DisplayProfile","LoadDefault","Load Default windows"
"2016-02-17 15:50:58","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-02-17 15:50:57","display","","Retreiving list of displaygroups for xibo 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-02-17 15:50:55","XMDSSoap4","RegisterDisplay","serverKey: y6QX70, hardwareKey: 07a9d804e9005f4415a8e9425a04f8c9, displayName: VIPER-PC"
"2016-02-17 15:50:55","Display","Touch","IN"
"2016-02-17 15:50:55","Data Module","SetError","Data Class: Error Number [25004] Error Message [Cannot find display record]"
"2016-02-17 15:50:55","","","Data Class: Error Number [25004] Error Message [Cannot find display record]"
"2016-02-17 15:50:54","XMDSSoap4","RegisterDisplay","serverKey: y6QX70, hardwareKey: 07a9d804e9005f4415a8e9425a04f8c9, displayName: VIPER-PC"
"2016-02-17 15:50:54","Display","Touch","IN"
"2016-02-17 15:50:54","Data Module","SetError","Data Class: Error Number [25004] Error Message [Cannot find display record]"
"2016-02-17 15:50:54","","","Data Class: Error Number [25004] Error Message [Cannot find display record]"

So…empty name record, cannot find display record, it seems similar to this one Can't register screen with server

I deleted the record ID from the database but had no effect, when I try to connect again it still populates the database, but in the CMS no. Another interesting fact is that I changed the Computer Name of the client from Windows, but in CMS database it detects the old Computer Name.

Display’s aren’t just isolated things - the chances are you have broken something by manually touching the database.

There are 3 tables involved in a single display record:

  • display
  • displaygroup
  • lkdisplaydg

I would imagine you have a displaygroup record with isDisplaySpecific set to 1 which is still intended for the display you removed.

I removed all the records from displaygroup, lkdisplaydg, lkdisplaygroupgroup and from schedule_detail and still the same problem.

When you click connect on a new display, what records exactly do you get in those 3 tables I mentioned?

First of all I removed all the records form these tables, and after that when I tried to connect with a new display only the table ‘display’ was populated. Here are the records from it.