The guide is empty: how to work out why

An empty guide is almost never a setting you got wrong. It is usually the join between two identifiers that do not match.

An empty guide has 3 possible causes. Separate them before you change anything, because the fix for each is different and 2 of them are not settings.

The file did not arrive. The file arrived and could not be read. The file arrived, was read, and nothing in it matched your channels.

The third is by far the most common.

First: are you looking in the right place?

On a console, check this before anything else. The schedule lives inside Live TV, not as its own destination. Tune a channel, open the schedule layer, and the shoulder buttons step a day at a time.

The standalone Guide entry in the console's navigation is a placeholder. Opening it and finding nothing says nothing about your guide data. That trips people up often enough to be the first thing to rule out.

Cause 1: the file did not arrive

Your devices download guide files directly. Our servers never fetch them for you, which is a deliberate rule rather than a limitation, and it has a diagnostic consequence: a guide that works on one machine and not another is a local network problem, not an account problem.

Test it by opening the guide URL in a browser on the machine that is failing. If it downloads there, the app can reach it too. If it does not, the problem is outside the app.

Check the container shape as well. 5 are accepted:

.xml     .xmltv     .gz     .zip     .xz

A URL that answers with an HTML error page instead fails in a way that looks like an empty guide.

Cause 2: the file arrived and could not be read

Less common than it used to be, and worth knowing about because the failure is dramatic.

A fixture pack of 51 real guide files turned up 3 distinct faults. I did not expect a single byte to take down an entire provider's guide, and every one of the 3 could. An unescaped ampersand in a programme title. A file declaring UTF-8 in its header while carrying Latin-1 bytes in its body. A stray control character in a description.

All 3 are repaired now rather than fatal, and the repairs are counted, so a file that needed patching says so rather than quietly working. On a current version this cause is unlikely.

One shape still worth checking: a compressed guide truncated in transit decompresses partially and gives you half a guide, which reads as "some channels have data and some do not". That has its own article: a guide that stops halfway.

Cause 3: nothing matched

This is the answer most of the time, and it is not a fault in either file.

A guide is joined to your channel list by identifier. Your playlist says a channel is tvg-id="bbc1.uk", and your guide file has to contain a channel whose id is exactly that. If your provider's playlist uses one convention and your guide uses another, the join produces nothing, and both files are individually perfect.

playlist   #EXTINF:-1 tvg-id="bbc1.uk",BBC One HD
guide      <channel id="BBCOne.uk">      -> no match, no schedule
guide      <channel id="bbc1.uk">        -> match

Symptoms that point here: channels play fine, the guide is blank for all of them or for one group, and the guide file is clearly large when you download it. That combination is a matching problem every time.

Two fixes. If your provider publishes their own XMLTV, use it: their ids match their playlist by construction. Otherwise use the per-channel override, reachable as Fix guide in the Live TV preview header, and point a channel at the right guide entry by hand. That override exists because automatic matching cannot always win. A correction is stored against the channel rather than the source and synced to your account, so fixing a channel once fixes it on every device and for every provider that carries it.

While you are in there

Two configuration states produce a guide that is slow rather than absent.

Global mode takes up to 15 URLs. Every large national guide you add is a file your device downloads and parses before the guide is complete, so several of them make a guide that fills in gradually. Per-country mode warns above 5 countries for the same reason.

And a first run with a large source takes time: roughly 77,842 titles across about 444 categories is a lot to index. For the first few minutes a guide that is still populating looks identical to one that is empty.

For what the file is supposed to contain, what XMLTV is. If the guide is there but the times are wrong, that is a different problem with a specific cause: why guide times are off.

What this article measured21 claims, each with the evidence behind it
ClaimEvidenceCounted
Guide files are fetched by your devices rather than by our servers, so a guide that works on one machine and not another is a local fetch problem rather than an account problem.n = 1Aug 31, 2026
A per-channel manual guide mapping override ships, reachable as Fix guide in the Live TV preview header, for the case where automatic matching cannot join a channel to its schedule.n = 1Aug 13, 2026
Three parser faults were found by a 51 file fixture pack, each capable of losing a whole provider's guide over one byte: an unescaped ampersand, UTF-8 declared over Latin-1 bytes, and a stray control character.n = 51Aug 16, 2026
Global mode accepts at most 15 guide URLs and per-country mode warns above 5 enabled countries, so an over-configured guide is a real and reachable state.n = 1Aug 31, 2026
Five container shapes are accepted: .xml, .xmltv, .gz, .zip and .xz. Anything else is not a supported guide file.n = 5Aug 31, 2026
On the console the schedule appears inside Live TV rather than as its own destination, so a console user checking the standalone Guide entry finds a placeholder and may conclude the guide is missing.n = 1Aug 31, 2026
The container is identified from the file's leading bytes, so a URL whose name promises compression but serves plain XML still works, and one that serves an error page is rejected as not XML rather than as a decompression failure.n = 4Sep 1, 2026
Eight distinct failure kinds are reported rather than one error, which is what lets an empty guide be attributed: no URL, not XML, network, size limit, decompression limit, security limit, cancelled or unknown.n = 8Sep 1, 2026
A parse reports kept and dropped counts alongside compressed and uncompressed sizes, so a guide that arrived truncated looks different from one whose entries fell outside the retention window.n = 7Sep 1, 2026
A guide publishing further ahead than the client keeps is not failing: programmes outside 8 days forward and 1 back are dropped during the parse by default.n = 1Sep 1, 2026
The parser treats a guide as untrusted input, ignoring document type definitions, using a null external resolver and capping entity expansion at zero characters.n = 3Sep 1, 2026
A compressed guide is bounded at 2 GiB of output and at 400 times its compressed size, so a compression bomb stops early rather than filling a disk.n = 2Sep 1, 2026
Eleven structural limits bound a parse, including a 1 KB title cap that exists because a programme may legally carry one title per language and forty would otherwise be concatenated into one.n = 11Sep 1, 2026
A manual guide mapping is stored at profile level against a source-free channel key, so correcting one channel covers every provider that carries it.n = 1Sep 1, 2026
Guide corrections are synced account state rather than a local repair, so fixing a channel on one device fixes it everywhere.n = 1Sep 1, 2026
A timestamp with no timezone is defined rather than ambiguous: the format says UTC is assumed. Guides that omit it are usually publishing local time anyway, which is a separate problem from an empty guide.xmltv.dtd, date field documentation: "You can also append a timezone to the end; if no explicit timezone is given, UTC is assumed."SpecificationNot applicable
There are exactly two guide modes, global and per-country, named as constants rather than free text, so a misconfiguration cannot produce a third state.n = 2Sep 1, 2026
On the console the standalone guide destination renders a placeholder, so finding nothing there is not evidence about your guide data.n = 1Sep 1, 2026
Under console memory pressure the guide cache is among the first things trimmed, which can make a populated guide look thinner after a long session.n = 1Sep 1, 2026
Rows are written in batches of 512 channels and 2,000 programmes, which is throughput rather than safety: a national guide written one row at a time is a guide that appears to hang.n = 2Sep 1, 2026
A production source in our sample carried roughly 77,842 titles across about 444 categories, so a guide that is still populating is a normal state on first run.n = 1Aug 31, 2026