Planned workouts not showing in browser

When I try to plan my weekly workouts in the activities tab on a Chrome or Firefox browser they simply don’t show up on the calendar. They do however show on the fitness tab and affect the fitness graph. The strange thing is that it shows on my iPhone’s Safari browser as well as on my iPad and Mac. Not sure if it is only a Chrome/Firefox issue but it is extremely annoying as I can’t plan my workouts like I always do on my Windows machine on Chrome. It seems like the issue is with displaying upcoming planned workouts. Not with actually creating them as once I create them for a date they are there and affecting my fitness, just not being shown on the calendar. Workouts that have been completed in the past show on the calendar just fine, only planned workouts are an issue.

Here is the week that has planned workouts in but not showing:

And here is the fitness graph for the upcoming week (25 March - 31 March) that is clearly being impacted by planned workouts that are not showing on the calendar:

PS: The “Plan” field IS checked in the options tab of the activites page

I think you need to check the ‘Plan’ checkbox in Options.

Hi. It is checked.

Just to make sure, is it checked on your Windows machine? Settings for different types of devices are not all shared. It could be checked on your phone/iPad and unchecked on the desktop GUI.

Yeah it’s checked on the windows machine:

That’s strange. When did this start happening? I just had a look at your calendar “as you” using Chrome on my Mac and I can see your planned workouts.

I don’t think there is a general issue with Chrome/Firefox on Windows or this forum would be flooded with bug reports.

It started probably a month or two ago. It always used to work perfectly on my Chrome browser. It even sometimes still does work but maybe like 1% of the time for a few minutes until I refresh.

I figured it was only me as it wasn’t reported by anyone, that’s why I waited so long to report it. I just thought someone would be able to help.

One thing I did think it can be is some of my Chrome extensions but I opened a guest tab on Chrome with no extensions and logged in ti my intervals account, but still the same issue. So no idea what could be going wrong.

Interestingly, I just opened intervals on Chrome on my iPhone and the planned workouts show fine.

So the only explanation could be that somehow it is only not working on my Windows laptop :astonished:

It could be that something is interfering with the web socket connection to Intervals.icu or there is a Javascript error. Could you please try right click anywhere on the Intervals.icu site and choose “Inspect”. Then go to the console tab. There might be an error there. Ignore the "“NavigationDuplicated” one. Tx.

This pattern repeats a few times after the “Failed to load resource”:

Here is the console output in plain text when I load the activities page:

Service worker has been registered. ServiceWorkerRegistration {installing: null, waiting: null, active: ServiceWorker, navigationPreload: NavigationPreloadManager, scope: ‘https://intervals.icu/’, …}active: ServiceWorker {scriptURL: ‘https://intervals.icu/service-worker.js’, state: ‘activated’, onstatechange: null, onerror: null}backgroundFetch: BackgroundFetchManager {}cookies: CookieStoreManager {}installing: nullnavigationPreload: NavigationPreloadManager {}onupdatefound: ƒ ()paymentManager: PaymentManager {userHint: ‘’}periodicSync: PeriodicSyncManager {}pushManager: PushManager {}scope: "https://intervals.icu/“sync: SyncManager {}updateViaCache: “imports"waiting: null[[Prototype]]: ServiceWorkerRegistration
chunk-vendors.9db5df8d.js:73 Uncaught (in promise) e {_name: ‘NavigationDuplicated’, name: ‘NavigationDuplicated’, message: 'Navigating to current location (”/”) is not allowed’, stack: ‘Error\n at new e (https://intervals.icu/js/chunk…https://intervals.icu/js/app.c27842c0.js:1:105622’}message: "Navigating to current location ("/") is not allowed"name: “NavigationDuplicated”_name: "NavigationDuplicated"stack: “Error\n at new e (https://intervals.icu/js/chunk-vendors.9db5df8d.js:73:17299)\n at Wt.confirmTransition (https://intervals.icu/js/chunk-vendors.9db5df8d.js:73:19586)\n at Wt.transitionTo (https://intervals.icu/js/chunk-vendors.9db5df8d.js:73:19053)\n at e.replace (https://intervals.icu/js/chunk-vendors.9db5df8d.js:73:21123)\n at https://intervals.icu/js/chunk-vendors.9db5df8d.js:73:25814\n at new Promise ()\n at he.replace (https://intervals.icu/js/chunk-vendors.9db5df8d.js:73:25778)\n at https://intervals.icu/js/app.c27842c0.js:1:105622”[[Prototype]]: Error
(anonymous) @ chunk-vendors.9db5df8d.js:73
l @ chunk-vendors.9db5df8d.js:73
Wt.confirmTransition @ chunk-vendors.9db5df8d.js:73
Wt.transitionTo @ chunk-vendors.9db5df8d.js:73
e.replace @ chunk-vendors.9db5df8d.js:73
(anonymous) @ chunk-vendors.9db5df8d.js:73
he.replace @ chunk-vendors.9db5df8d.js:73
(anonymous) @ app.c27842c0.js:1
Promise.then (async)
getAthlete @ app.c27842c0.js:1
mounted @ app.c27842c0.js:1
re @ chunk-vendors.9db5df8d.js:9
jn @ chunk-vendors.9db5df8d.js:9
insert @ chunk-vendors.9db5df8d.js:9
O @ chunk-vendors.9db5df8d.js:9
(anonymous) @ chunk-vendors.9db5df8d.js:9
Dn.t._update @ chunk-vendors.9db5df8d.js:9
r @ chunk-vendors.9db5df8d.js:9
rr.get @ chunk-vendors.9db5df8d.js:9
rr @ chunk-vendors.9db5df8d.js:9
Rn @ chunk-vendors.9db5df8d.js:9
kr.$mount @ chunk-vendors.9db5df8d.js:9
56d7 @ app.c27842c0.js:1
l @ app.c27842c0.js:1
0 @ app.c27842c0.js:1
l @ app.c27842c0.js:1
i @ app.c27842c0.js:1
(anonymous) @ app.c27842c0.js:1
(anonymous) @ app.c27842c0.js:1
app.c27842c0.js:1 stomp connect n {command: ‘CONNECTED’, headers: {…}, body: ‘’}body: ""command: "CONNECTED"headers: heart-beat: "0,0"version: “1.2”[[Prototype]]: Objectconstructor: ƒ Object()hasOwnProperty: ƒ hasOwnProperty()isPrototypeOf: ƒ isPrototypeOf()propertyIsEnumerable: ƒ propertyIsEnumerable()toLocaleString: ƒ toLocaleString()toString: ƒ toString()valueOf: ƒ valueOf()defineGetter: ƒ defineGetter()defineSetter: ƒ defineSetter()lookupGetter: ƒ lookupGetter()lookupSetter: ƒ lookupSetter()proto: (…)get proto: ƒ proto()set proto: ƒ proto()[[Prototype]]: Object
chunk-vendors.9db5df8d.js:3 WebSocket connection to ‘wss://intervals.icu/api/ws/131/fa3v1wbx/websocket’ failed: Could not decode a text frame as UTF-8.
t.exports @ chunk-vendors.9db5df8d.js:3
u @ chunk-vendors.9db5df8d.js:17
w._connect @ chunk-vendors.9db5df8d.js:17
w._receiveInfo @ chunk-vendors.9db5df8d.js:17
i @ chunk-vendors.9db5df8d.js:78
a.emit @ chunk-vendors.9db5df8d.js:78
(anonymous) @ chunk-vendors.9db5df8d.js:85
i @ chunk-vendors.9db5df8d.js:78
a.emit @ chunk-vendors.9db5df8d.js:78
(anonymous) @ chunk-vendors.9db5df8d.js:68
i @ chunk-vendors.9db5df8d.js:78
a.emit @ chunk-vendors.9db5df8d.js:78
xhr.onreadystatechange @ chunk-vendors.9db5df8d.js:87
app.c27842c0.js:1 stomp error a {type: ‘close’, bubbles: false, cancelable: false, timeStamp: 1711513678366, wasClean: false, …}
app.c27842c0.js:1 stomp connect n {command: ‘CONNECTED’, headers: {…}, body: ‘’}
app.c27842c0.js:1 ActivityStore re-connection i154036 wipe ranges
app.c27842c0.js:1 CalendarStore re-connection i154036 wipe ranges
app.c27842c0.js:1 WellnessStore re-connection i154036 wipe ranges
chunk-vendors.9db5df8d.js:3 WebSocket connection to ‘wss://intervals.icu/api/ws/984/5u3ulje4/websocket’ failed: Could not decode a text frame as UTF-8.
t.exports @ chunk-vendors.9db5df8d.js:3
u @ chunk-vendors.9db5df8d.js:17
w._connect @ chunk-vendors.9db5df8d.js:17
w._receiveInfo @ chunk-vendors.9db5df8d.js:17
i @ chunk-vendors.9db5df8d.js:78
a.emit @ chunk-vendors.9db5df8d.js:78
(anonymous) @ chunk-vendors.9db5df8d.js:85
i @ chunk-vendors.9db5df8d.js:78
a.emit @ chunk-vendors.9db5df8d.js:78
(anonymous) @ chunk-vendors.9db5df8d.js:68
i @ chunk-vendors.9db5df8d.js:78
a.emit @ chunk-vendors.9db5df8d.js:78
xhr.onreadystatechange @ chunk-vendors.9db5df8d.js:87
app.c27842c0.js:1 stomp error a {type: ‘close’, bubbles: false, cancelable: false, timeStamp: 1711513712664, wasClean: false, …}
app.c27842c0.js:1 stomp connect n {command: ‘CONNECTED’, headers: {…}, body: ‘’}
app.c27842c0.js:1 ActivityStore re-connection i154036 wipe ranges
app.c27842c0.js:1 CalendarStore re-connection i154036 wipe ranges
app.c27842c0.js:1 WellnessStore re-connection i154036 wipe ranges
chunk-vendors.9db5df8d.js:3 WebSocket connection to ‘wss://intervals.icu/api/ws/789/yks1unbn/websocket’ failed: Could not decode a text frame as UTF-8.
t.exports @ chunk-vendors.9db5df8d.js:3
u @ chunk-vendors.9db5df8d.js:17
w._connect @ chunk-vendors.9db5df8d.js:17
w._receiveInfo @ chunk-vendors.9db5df8d.js:17
i @ chunk-vendors.9db5df8d.js:78
a.emit @ chunk-vendors.9db5df8d.js:78
(anonymous) @ chunk-vendors.9db5df8d.js:85
i @ chunk-vendors.9db5df8d.js:78
a.emit @ chunk-vendors.9db5df8d.js:78
(anonymous) @ chunk-vendors.9db5df8d.js:68
i @ chunk-vendors.9db5df8d.js:78
a.emit @ chunk-vendors.9db5df8d.js:78
xhr.onreadystatechange @ chunk-vendors.9db5df8d.js:87
app.c27842c0.js:1 stomp error a {type: ‘close’, bubbles: false, cancelable: false, timeStamp: 1711513725707, wasClean: false, …}
app.c27842c0.js:1 stomp connect n {command: ‘CONNECTED’, headers: {…}, body: ‘’}
app.c27842c0.js:1 ActivityStore re-connection i154036 wipe ranges
app.c27842c0.js:1 CalendarStore re-connection i154036 wipe ranges
app.c27842c0.js:1 WellnessStore re-connection i154036 wipe ranges

It certainly looks like something is interfering with the websocket traffic and breaking the connection frequently. Do you have any anti-virus stuff running? Could you try running Chrome on a different machine on the same internet connection?

What is your internet speed?