Skip to content

My Power BI refresh failed

Start by checking the token. An expired or revoked token can cause a delayed failure with a misleading message.

A personal access token expires one year after it was created, and stops working straight away if it’s revoked. Power BI doesn’t say so clearly.

What you’ll see:

  • The failure arrives late. Power BI retries before giving up, so the failure can take several minutes to appear. In our tests, a manual refresh failed after about 8 minutes, and a scheduled refresh after about 26 minutes. Your timings may differ.

  • The refresh history gives a general message:

    An error occurred while processing the semantic model.

    Click Show next to it to see the real cause:

    Data source error: The credentials provided for the OData source are invalid. (Source at https://portal.timetoreply.com/odata/v1/)

  • The failure email suggests a temporary problem. For a failed scheduled refresh, Power BI sends an email from [email protected] with the subject “Refresh failed: your semantic model has failed to refresh”. It says:

    The last refresh attempt failed because of an internal service error. This is usually a transient issue. If you try again later and still see this message, contact support.

    Further down, wrapped in some stray markup, it gives the real cause:

    <ccon>The credentials provided for the OData source are invalid. (Source at https://portal.timetoreply.com/odata/v1/)&lt;/ccon>. The exception was raised by the IDbCommand interface.

If either message says the credentials for the OData source are invalid, waiting won’t fix it. Check for an expired, revoked or incorrectly entered token, and confirm the user name is token.

To fix it:

  1. Go to Tools → Access Tokens in timetoreply. Each token shows its expiry date. If the token Power BI uses has expired or isn’t listed, create a new one.
  2. Enter the new token in the Power BI Service and in Desktop. See Replace a token.
  3. Click Refresh now and check View refresh history.

You don’t need to republish the report.

If the credentials are valid but you still can’t load a table, the token owner may have lost access. See A table is missing.

“Scheduled refresh has been disabled.”

Section titled ““Scheduled refresh has been disabled.””

If a refresh fails within a second of pressing Refresh, usually just after publishing, Power BI doesn’t have credentials for the feed yet. Enter them under Settings → Data access → Data source credentials → Edit credentials, then turn the refresh schedule back on. See Publish and schedule a refresh.

The data is one column of records, not tables

Section titled “The data is one column of records, not tables”

You’ve connected with the Web connector (“Web API” or “Web page”) instead of OData feed. The Web connector accepts the same address and token but returns raw text. Connect again with Get data → OData feed. See Connect Power BI Desktop.

If you connected Power BI to the timetoreply API before the OData feed existed, that’s a different data source. Changing its address won’t turn it into an OData connection.

When timetoreply refuses a filter, Power BI often shows an empty table instead of an error. Check the table’s filter steps:

  • The weeks include the current week. Report tables only calculate completed Monday-to-Sunday weeks, in the token owner’s time zone.
  • A date isn’t a Monday (for PeriodStart) or a Sunday (for PeriodEnd) on a report table.
  • The selection is too big. One report table can calculate up to 500 combinations (weeks × teams × communication types, × thresholds on the awaiting tables) and up to 53 weeks. Select fewer teams or weeks, or split the table into two queries.
  • One column must equal two values with “and”. That can never be true. Use or.
  • A log table is filtered on a column it can’t filter, such as Subject, or it covers more than a year. See Log tables.
  • A text value doesn’t match exactly. Values such as Team, EverybodyElse and MyDomains are case-sensitive.

The per-address tables can also be empty for a good reason: they only have rows for addresses with activity, or on the awaiting tables, with something waiting.

A table has only one row of company figures

Section titled “A table has only one row of company figures”

For Admins and Company Managers, an unfiltered summary table returns one company-wide row, communicating with anybody, for the last completed week. Restricted Managers default to their visible teams instead. Add filter steps for the weeks, teams and communication types you want. See Choose what the report tables calculate.

If you’ve added filter steps and still get one row, Power BI may be applying them itself instead of sending them to timetoreply. Move them to straight after the table is opened. In the example query, temporarily change -35 to -28 and check that five weeks become four, then restore it. See the filter instructions.

  • The token owner can’t open the matching report in timetoreply. For example, the SLA tables need access to the SLA report, and Messages needs access to the message log. See Who sees which tables.
  • The access changed after you connected. Power BI only offers the tables it saw when you connected. Connect again with Get data → OData feed.
  • Your plan doesn’t include API and BI tool access, or the token owner’s role has changed. Ask a timetoreply admin.

“Formula.Firewall” when combining with another source

Section titled ““Formula.Firewall” when combining with another source”

A query that merges timetoreply data with another source is blocked by privacy levels. If the sources may exchange data within your trusted environment, set both to Organizational. Otherwise, load them as separate tables and relate them in Model view. See Privacy levels and combining with other data.

  • Load only the tables you use. Report tables are calculated on request, and the log tables can be very large.
  • Keep log windows short. Each page is 200 rows, so a long window on a busy account is a lot of requests.
  • Refresh outside working hours, but not in the early hours of Monday, when the rolling week window can change.

timetoreply accepts up to 300 requests a minute for each token owner, across all their reports. Power BI makes several requests per table, plus one per page. If you have several large reports refreshing at the same time under one person’s tokens, spread their schedules out.

See Reading timetoreply numbers in Power BI, especially Check a figure against timetoreply.