Pre-Provisioning Checklist
Before you start the deployment or takeover of devices, ensure the following requirements are met.
Network requirements and settings
- See the required domains and ports needed for connecting devices to signageOS Cloud; the key domain is https://platform.signageos.io
- Other domains needed depend on the provisioning method. Typically you need shortcuts to our CDN or 0099.io domain.
To avoid issues later, we strongly recommend checking the availability of all required domains by network ping.
Device compatibility and firmware updates
- Check the FW Requirements guide to be familiar with this topic.
- Always ensure devices are running on the supported FW or newer; FW requirements are listed for each device on the Supported devices page.
Provisioning Process
Always follow the Step-by-step guide to provisioning devices with troubleshooting tips for common issues. For each device, here are the common pitfalls:
Date and time settings
Misconfiguration of date and time is causing 90% of provisioning issues. Always triple-check that both - date and time - are configured correctly.Â
If you are using an NTP server, make sure it's available and reliable on the device's network. The most reliable NTP servers are:
- time.google.com
- time.apple.com
- time.windows.com
If you can, limit the use of pool.ntp.org as it's slow and can cause issues on some devices (typically Tizen devices).
Network availability
While deploying devices to customers' sites, it is very often the network is misconfigured. Checking available domains and ports can be done using signageOS OSD. Open the OSD and check the Network tab.
Service availability
In case the device is not being provisioned or is not showing a Verification hash, you can check the signageOS status page: https://status.signageos.io for any incident or reported service degradation.
Typical issues per device type
Samsung
- If you see "Unable to connect" during installation, triple-check that the URL in the URL Launcher/Custom app menu is typed correctly (e.g.: http:// instead of https://, sigangeos instead of signageos, tizen.signagekiosk instead of tizen.signageoskiosk)
- If the URL is correct, then check the device time and date
LG
- If you see "Unable to install" during installation, triple-check the URL in the SI menu and validate the time and date on the display
How to verify successful provisioning
The device is successfully provisioned once you confirm the following:
- Device is visible in the Box
- Device reports pings and is visible as an Online
- Device sends screenshots that are visible in the Box
- [Optional] Device receives Applet from signageOS (not applicable to CloudControl-only deployments)
- Android device - the device is locked to Kiosk mode; this step is highly recommended for all other devices as well, but it's specifically crucial for Android devices
- Device has set scheduled daily reboots or native timers, ideally deployed as a part of device policy
- Device has disabled both Native and Remote debugs
Operational Troubleshooting
Network
If you are experiencing any of these issues:
- Observing inconsistent connectivity
- Device in Pending state
- Multiple (> 4) connections in the Connections table
- Intermittent responsivity for device actions
Most of the time the issue is related to the network. Please check that the network is configured correctly and is stable. Check Wi-Fi AP signal strength and conflicting Wi-Fi networks. If you are using a proxy, validate TTL on the tunneling. Ensure all ports and domains are allowed for the specific ethernet port. Check that there is no additional/new configuration of firewall rules done by the network teams of your customer.
Date and Time
If you are experiencing any of these issues:
- Device is not playing content based on a set schedule
- Device is not starting/shutting down according to Timers
- Device is reporting "Unable to establish a secure connection"
In such cases, the root cause of these issues is incorrect time and date. Check the date and time on the device. Check the availability of the NTP server in the device's network. Force a timezone update on the device and perform the reboot.
Samsung MagicInfo / RM server
In case you are running a Samsung MagicInfo/RM server along with signageOS:
- Ensure that devices have the correct timezone set and that the timezone in the RM server matches the timezone in signageOS
- If you are not using NTP and the customer has Tizen devices in VPN, these devices will get time-based on the VPN server location
SSL certificates
If you see devices offline or your Applet is not communicating with your server, there is a chance SSL root certificates are expired. This issue can occur in the following scenarios:
- Device has incorrect time and date -> please see the previous section
- Device is trying to communicate over SSL with a certificate that expired or is not supported on the device
Typically we see issues with the latest Let's Encrypt certificates that are using root certificates that are not available on older (legacy) devices. We recommend using the GlobalSign certificate that has full coverage across all devices:
"Black screen" Applet-specific Troubleshooting
Below are known troubles that you can face while running your Applet in production and that might cause playback disruptions:
CORS
Downloading files using JS SDK requires your server to comply with CORS. You can check the ORIGIN headers for each platform here: https://docs.signageos.io/hc/en-us/articles/4405231882002-Network-Firewall-ports-and-domains#http-s-requests-origins-going-from-applet
Troubleshooting:
- Open Postman
- Create a GET request & insert your file URL
- Press Send
- Check the Response Headers regarding request origin
- The easiest fix is to use *, or strictly define allowed origins based on the link above
iFrame origin
Similar to CORS and request origin, iframe origin restriction can block live web content from loading. iFrames are served from device storage and their origin differs based on platform. You can check the ORIGIN headers for each platform here: https://docs.signageos.io/hc/en-us/articles/4405231882002-Network-Firewall-ports-and-domains#http-s-requests-origins-going-from-applet
Â
Pre-flight CORS requests
If a request to an external API mandates a CORS header response (POST, PUT, DELETE), a pre-flight request is made automatically by the browser as part of the CORS standard. Make sure that the OPTIONS call does not require any special headers (x-API-key, authentication, etc..). These are not passed from the original request, and as a result, you will get a CORS error.
More info here: https://developer.mozilla.org/en-US/docs/Glossary/Preflight_request
HEAD requests
CoreApps are calling HEAD requests on files to check their file size. This mechanism is used to avoid downloading files that are too large to fit into the remaining storage. Some file/blob storage services (e.g.: AWS S3, Azure Blob) do not allow HEAD requests by default. It's recommended to enable them.
Heads up: specifically for those that are using SMIL Player, you have to enable the HEAD requests or adjust your SMIL playlists.
Â