Cannot Import Custom Workout to Zwift

I used https://whatsonzwift.com/gpx-to-zwift-workout to convert a real life route into a Zwift workout for two routes. One shows up as a workout after I import it into /Documents/Zwift/Workouts/{user_id} and the other doesn’t.
I can’t figure out why the other doesn’t, the XML format looks to be near identical. Here’s the xml of the file that doesn’t work

<?xml version="1.0"?>
<workout_file>
  <author>What's on Zwift</author>
  <name>Medio 2025 (HB)</name>
  <description>This workout was created on whatsonzwift.com based on Medio 2025 (HB). Please note that although the workout represents the course for the entered rider and bike characteristics, in Zwift the speed and distance will not match due to course differences.

Course details: 98.51 km, 586 m elevation
Time to complete: 4h 3m 5s (24.3 km/h avg.)
Workout details: 126.4 W avg. (1.76 W/kg), NP=136.2 W, IF=0.8, VI=1.08
</description>
  <sportType/>
  <tags>
    <tag name="course"/>
  </tags>
  <workout>
    <SteadyState Duration="63" Power="0.73581745512893"/>
    <SteadyState Duration="29" Power="0.70780735716536"/>
    <SteadyState Duration="71" Power="0.77098121110657"/>
    <SteadyState Duration="71" Power="0.68799970047735"/>
    <SteadyState Duration="39" Power="0.76713698693293"/>
    <SteadyState Duration="115" Power="0.72106470862557"/>
    <SteadyState Duration="53" Power="0.83580677758101"/>
    <SteadyState Duration="7" Power="0.6906636860628"/>
    <SteadyState Duration="19" Power="0.66229039490016"/>
    <SteadyState Duration="22" Power="0.72600874562849"/>
    <SteadyState Duration="125" Power="0.83844815222793"/>
    <SteadyState Duration="10" Power="0.77301015781923"/>
    <SteadyState Duration="59" Power="0.7461996111731"/>
    <SteadyState Duration="6" Power="0.6365208450081"/>
    <SteadyState Duration="30" Power="0.60780270009156"/>
    <SteadyState Duration="33" Power="0.74082431342678"/>
    <SteadyState Duration="82" Power="0.71971450364295"/>
    <SteadyState Duration="54" Power="0.87378539733994"/>
    <SteadyState Duration="22" Power="0.83827521229269"/>
    <SteadyState Duration="71" Power="0.68732906059522"/>
    <SteadyState Duration="32" Power="0.75773525327066"/>
    <SteadyState Duration="145" Power="0.87439976672925"/>
    <SteadyState Duration="106" Power="0.93153996506465"/>
    <SteadyState Duration="79" Power="0.88125520374075"/>
    <SteadyState Duration="13" Power="0.4718827700678"/>
    <SteadyState Duration="64" Power="0.65362696968757"/>
    <SteadyState Duration="29" Power="0.74536558500874"/>
    <SteadyState Duration="64" Power="0.90589334625895"/>
    <SteadyState Duration="11" Power="0.7322632181544"/>
    <SteadyState Duration="12" Power="0.55085780095868"/>
    <SteadyState Duration="51" Power="0.79606658260091"/>
    <SteadyState Duration="136" Power="0.74627036231612"/>
    <SteadyState Duration="55" Power="0.72948069777532"/>
    <SteadyState Duration="38" Power="0.76731724215374"/>
    <SteadyState Duration="6" Power="0.72590192360411"/>
    <SteadyState Duration="185" Power="0.73795804642719"/>
    <SteadyState Duration="28" Power="0.77356156669357"/>
    <SteadyState Duration="12" Power="0.75593481231514"/>
    <SteadyState Duration="29" Power="0.72288752808547"/>
    <SteadyState Duration="33" Power="0.80027102362669"/>
    <SteadyState Duration="13" Power="0.75933757754123"/>
    <SteadyState Duration="51" Power="0.71900635394339"/>
    <SteadyState Duration="85" Power="0.8864773259957"/>
    <SteadyState Duration="42" Power="0.7749143087672"/>
    <SteadyState Duration="19" Power="0.72339920858232"/>
    <SteadyState Duration="9" Power="0.71422097934677"/>
    <SteadyState Duration="41" Power="0.68301457912669"/>
    <SteadyState Duration="279" Power="0.74926496917657"/>
    <SteadyState Duration="30" Power="0.70897726249507"/>
    <SteadyState Duration="30" Power="0.76734751577049"/>
    <SteadyState Duration="29" Power="0.75784674593905"/>
    <SteadyState Duration="11" Power="0.71376673540269"/>
    <SteadyState Duration="15" Power="0.63921558543453"/>
    <SteadyState Duration="348" Power="0.75268822141273"/>
    <SteadyState Duration="148" Power="0.72631338291611"/>
    <SteadyState Duration="124" Power="0.76730037206026"/>
    <SteadyState Duration="52" Power="0.73544075862835"/>
    <SteadyState Duration="58" Power="0.84859965661945"/>
    <SteadyState Duration="15" Power="0.81092557932425"/>
    <SteadyState Duration="19" Power="0.6452444822322"/>
    <SteadyState Duration="43" Power="0.78270658561602"/>
    <SteadyState Duration="23" Power="0.6829622969688"/>
    <SteadyState Duration="42" Power="0.79387264536536"/>
    <SteadyState Duration="87" Power="0.77791127309273"/>
    <SteadyState Duration="45" Power="0.81660511552508"/>
    <SteadyState Duration="10" Power="0.80337437215666"/>
    <SteadyState Duration="24" Power="0.73488798053116"/>
    <SteadyState Duration="9" Power="0.68945540943267"/>
    <SteadyState Duration="38" Power="0.67090723442888"/>
    <SteadyState Duration="63" Power="0.81391371610706"/>
    <SteadyState Duration="25" Power="0.70541699374815"/>
    <SteadyState Duration="33" Power="0.77434380155398"/>
    <SteadyState Duration="175" Power="0.7502311191107"/>
    <SteadyState Duration="51" Power="0.71418294403851"/>
    <SteadyState Duration="100" Power="0.79377854475329"/>
    <SteadyState Duration="183" Power="0.73257424175782"/>
    <SteadyState Duration="37" Power="0.78147359609669"/>
    <SteadyState Duration="68" Power="0.74311296916942"/>
    <SteadyState Duration="56" Power="0.82962660255665"/>
    <SteadyState Duration="5" Power="0.74288935175713"/>
    <SteadyState Duration="85" Power="0.73334818530855"/>
    <SteadyState Duration="87" Power="0.88005519652773"/>
    <SteadyState Duration="19" Power="0.61630891352342"/>
    <SteadyState Duration="36" Power="0.75329330323338"/>
    <SteadyState Duration="78" Power="0.72015756361421"/>
    <SteadyState Duration="66" Power="0.81592650394588"/>
    <SteadyState Duration="26" Power="0.70089375011156"/>
    <SteadyState Duration="63" Power="0.87866094753692"/>
    <SteadyState Duration="11" Power="0.7450990233031"/>
    <SteadyState Duration="52" Power="0.72440799782529"/>
    <SteadyState Duration="30" Power="0.76880807654668"/>
    <SteadyState Duration="36" Power="0.7354565528196"/>
    <SteadyState Duration="53" Power="0.70344551843636"/>
    <SteadyState Duration="93" Power="0.80718420571496"/>
    <SteadyState Duration="13" Power="0.74408348950095"/>
    <SteadyState Duration="103" Power="0.71583775429681"/>
    <SteadyState Duration="86" Power="0.78765323894102"/>
    <SteadyState Duration="36" Power="0.75883573733989"/>
    <SteadyState Duration="116" Power="0.82411252874596"/>
    <SteadyState Duration="19" Power="0.61947483265837"/>
    <SteadyState Duration="55" Power="0.71629159381354"/>
    <SteadyState Duration="38" Power="0.76994699439672"/>
    <SteadyState Duration="64" Power="0.75045686163387"/>
    <SteadyState Duration="15" Power="0.85785610814052"/>
    <SteadyState Duration="74" Power="0.9614285043187"/>
    <SteadyState Duration="26" Power="0.89671853076073"/>
    <SteadyState Duration="98" Power="0.80886858554982"/>
    <SteadyState Duration="8" Power="0.71912836636147"/>
    <SteadyState Duration="18" Power="0.70838975012577"/>
    <SteadyState Duration="50" Power="0.79624309514563"/>
    <SteadyState Duration="74" Power="0.87304917722102"/>
    <SteadyState Duration="53" Power="0.82282735558674"/>
    <SteadyState Duration="23" Power="0.95015239179644"/>
    <SteadyState Duration="88" Power="1.0327132971563"/>
    <SteadyState Duration="28" Power="0.95572052393531"/>
    <SteadyState Duration="145" Power="0.80592292659113"/>
    <SteadyState Duration="91" Power="0.89732869211437"/>
    <SteadyState Duration="182" Power="1.0400082061762"/>
    <SteadyState Duration="122" Power="1.0293705645502"/>
    <SteadyState Duration="13" Power="0.50646957016987"/>
    <SteadyState Duration="13" Power="0.44000820617621"/>
    <SteadyState Duration="14" Power="0.56404199664504"/>
    <SteadyState Duration="44" Power="0.81755187413746"/>
    <SteadyState Duration="10" Power="0.74719723666438"/>
    <SteadyState Duration="17" Power="0.65944301064741"/>
    <SteadyState Duration="18" Power="0.60650701157793"/>
    <SteadyState Duration="23" Power="0.68044976388894"/>
    <SteadyState Duration="15" Power="0.56457607984046"/>
    <SteadyState Duration="111" Power="0.82614668146251"/>
    <SteadyState Duration="6" Power="0.6459721179953"/>
    <SteadyState Duration="28" Power="0.5691812811022"/>
    <SteadyState Duration="45" Power="0.70475907103615"/>
    <SteadyState Duration="17" Power="0.79488272148299"/>
    <SteadyState Duration="50" Power="0.87773411241415"/>
    <SteadyState Duration="16" Power="0.79282610712831"/>
    <SteadyState Duration="16" Power="0.66316446860769"/>
    <SteadyState Duration="40" Power="0.74742574127494"/>
    <SteadyState Duration="38" Power="0.64307313855999"/>
    <SteadyState Duration="77" Power="0.76372563552833"/>
    <SteadyState Duration="116" Power="0.83973727441998"/>
    <SteadyState Duration="100" Power="0.95673986168047"/>
    <SteadyState Duration="19" Power="0.912309012599"/>
    <SteadyState Duration="44" Power="0.82802066662719"/>
    <SteadyState Duration="10" Power="0.7261712426899"/>
    <SteadyState Duration="12" Power="0.61994849709084"/>
    <SteadyState Duration="5" Power="0.54257839418923"/>
    <SteadyState Duration="9" Power="0.48796653203242"/>
    <SteadyState Duration="7" Power="0.6725694368791"/>
    <SteadyState Duration="25" Power="0.76713737452191"/>
    <SteadyState Duration="7" Power="0.72020198343676"/>
    <SteadyState Duration="16" Power="0.66961346572151"/>
    <SteadyState Duration="14" Power="0.61515171525666"/>
    <SteadyState Duration="8" Power="0.66792941354225"/>
    <SteadyState Duration="93" Power="0.96518434015509"/>
    <SteadyState Duration="11" Power="0.75852841505408"/>
    <SteadyState Duration="33" Power="0.68627093387959"/>
    <SteadyState Duration="7" Power="0.66393397478721"/>
    <SteadyState Duration="12" Power="0.50306440361398"/>
    <SteadyState Duration="5" Power="0.6444201557315"/>
    <SteadyState Duration="25" Power="0.73012136565479"/>
    <SteadyState Duration="117" Power="0.72175320677791"/>
    <SteadyState Duration="25" Power="0.76865301936236"/>
    <SteadyState Duration="42" Power="0.74055548330305"/>
    <SteadyState Duration="59" Power="0.72702052590165"/>
    <SteadyState Duration="27" Power="0.76691592149054"/>
    <SteadyState Duration="9" Power="0.70386726719962"/>
    <SteadyState Duration="40" Power="0.68079823148552"/>
    <SteadyState Duration="66" Power="0.73525298249526"/>
    <SteadyState Duration="38" Power="0.82627255610194"/>
    <SteadyState Duration="16" Power="0.80561788723859"/>
    <SteadyState Duration="114" Power="0.72644244773092"/>
    <SteadyState Duration="55" Power="0.78601571141653"/>
    <SteadyState Duration="32" Power="0.75460224832719"/>
    <SteadyState Duration="24" Power="0.70435839334967"/>
    <SteadyState Duration="42" Power="0.65628332157384"/>
    <SteadyState Duration="135" Power="0.75003744324445"/>
    <SteadyState Duration="116" Power="0.73317693350999"/>
    <SteadyState Duration="56" Power="0.80081596373815"/>
    <SteadyState Duration="29" Power="0.74109333326332"/>
    <SteadyState Duration="102" Power="0.69840382258814"/>
    <SteadyState Duration="42" Power="0.80315330839871"/>
    <SteadyState Duration="53" Power="0.72296726263168"/>
    <SteadyState Duration="34" Power="0.70978753677382"/>
    <SteadyState Duration="27" Power="0.76869123725506"/>
    <SteadyState Duration="13" Power="0.75119046323009"/>
    <SteadyState Duration="86" Power="0.72580915646128"/>
    <SteadyState Duration="85" Power="0.7864177267688"/>
    <SteadyState Duration="54" Power="0.71156620025304"/>
    <SteadyState Duration="52" Power="0.82752031993585"/>
    <SteadyState Duration="11" Power="0.73882788591599"/>
    <SteadyState Duration="19" Power="0.70745981646063"/>
    <SteadyState Duration="168" Power="0.81263935276043"/>
    <SteadyState Duration="59" Power="0.73646693795788"/>
    <SteadyState Duration="55" Power="0.80602904834174"/>
    <SteadyState Duration="72" Power="0.69483448310463"/>
    <SteadyState Duration="71" Power="0.78055158018198"/>
    <SteadyState Duration="39" Power="0.73342635954772"/>
    <SteadyState Duration="45" Power="0.68181951988573"/>
    <SteadyState Duration="38" Power="0.77306786220475"/>
    <SteadyState Duration="21" Power="0.63589896031324"/>
    <SteadyState Duration="133" Power="0.7492094626028"/>
    <SteadyState Duration="179" Power="0.73496069524337"/>
    <SteadyState Duration="82" Power="0.77974822596175"/>
    <SteadyState Duration="12" Power="0.73708679613077"/>
    <SteadyState Duration="44" Power="0.68210091696163"/>
    <SteadyState Duration="193" Power="0.74284984240219"/>
    <SteadyState Duration="74" Power="0.92879633823141"/>
    <SteadyState Duration="27" Power="0.85525408798663"/>
    <SteadyState Duration="19" Power="0.68145096559126"/>
    <SteadyState Duration="110" Power="0.81500995732181"/>
    <SteadyState Duration="69" Power="0.75557923750535"/>
    <SteadyState Duration="79" Power="0.87621947970132"/>
    <SteadyState Duration="38" Power="0.64391429386278"/>
    <SteadyState Duration="19" Power="0.60781663315135"/>
    <SteadyState Duration="12" Power="0.4816176284502"/>
    <SteadyState Duration="49" Power="0.79135035778797"/>
    <SteadyState Duration="28" Power="0.73377758560452"/>
    <SteadyState Duration="110" Power="0.71393010207429"/>
    <SteadyState Duration="19" Power="0.66413447144095"/>
    <SteadyState Duration="41" Power="0.76716284939707"/>
    <SteadyState Duration="62" Power="0.86910006683766"/>
    <SteadyState Duration="8" Power="0.73472359903991"/>
    <SteadyState Duration="13" Power="0.6099510382911"/>
    <SteadyState Duration="33" Power="0.74404004354925"/>
    <SteadyState Duration="27" Power="0.91271725743735"/>
    <SteadyState Duration="80" Power="0.96531571355882"/>
    <SteadyState Duration="97" Power="0.95833170607962"/>
    <SteadyState Duration="16" Power="0.84487501363188"/>
    <SteadyState Duration="19" Power="0.73958088088652"/>
    <SteadyState Duration="7" Power="0.69979244307152"/>
    <SteadyState Duration="9" Power="0.44000820617621"/>
    <SteadyState Duration="28" Power="0.73262909500485"/>
    <SteadyState Duration="74" Power="0.84596647654501"/>
    <SteadyState Duration="35" Power="0.73955689553602"/>
    <SteadyState Duration="50" Power="0.82913443366178"/>
    <SteadyState Duration="51" Power="0.76436175497295"/>
    <SteadyState Duration="38" Power="0.81651428902735"/>
    <SteadyState Duration="90" Power="0.7742105878967"/>
    <SteadyState Duration="20" Power="0.68536993620239"/>
    <SteadyState Duration="60" Power="0.83316945661947"/>
    <SteadyState Duration="189" Power="0.95240374393439"/>
    <SteadyState Duration="344" Power="1.0400082061762"/>
    <SteadyState Duration="19" Power="0.80979287950075"/>
    <SteadyState Duration="11" Power="0.62644206661398"/>
    <SteadyState Duration="14" Power="0.4805023672407"/>
    <SteadyState Duration="31" Power="0.60186959510052"/>
    <SteadyState Duration="31" Power="0.70150678414997"/>
    <SteadyState Duration="17" Power="0.6627582409587"/>
    <SteadyState Duration="92" Power="0.74619252592775"/>
    <SteadyState Duration="8" Power="0.70221960565381"/>
    <SteadyState Duration="16" Power="0.63106015455701"/>
    <SteadyState Duration="18" Power="0.57342323162217"/>
    <SteadyState Duration="63" Power="0.67736176018709"/>
    <SteadyState Duration="33" Power="0.6135495665878"/>
    <SteadyState Duration="81" Power="0.88238090397259"/>
    <SteadyState Duration="5" Power="0.77519402978972"/>
    <SteadyState Duration="32" Power="0.59419746337263"/>
    <SteadyState Duration="337" Power="0.72309916041339"/>
    <SteadyState Duration="182" Power="0.78801023007863"/>
    <SteadyState Duration="87" Power="0.89505893771944"/>
    <SteadyState Duration="5" Power="0.82121500885299"/>
    <SteadyState Duration="42" Power="0.6437012909574"/>
    <SteadyState Duration="23" Power="0.72627649080158"/>
    <SteadyState Duration="370" Power="0.7223989939628"/>
  </workout>
</workout_file>

What is the name given to the workout that did get imported? If it happens to be the same as the one above, Zwift won’t allow two workouts with the same name.

The first working one had a name of RW_Rte_B_version_2_China_Camp_McGinnis_Pkwy_170WFTP.zwo and the nonworking one had a name of Medio_2025_HB_170WFTP.zwo

It’s interesting, it still doesn’t show in the workouts menu under custom, but when I joined a route for big spin and went to start a workout from the in-route menu it did appear. So I suppose that’s a bug but I can live with that

Hi @Ben_Wishovich, welcome to the Forums! I’m Francisco from Zwift Support.

Thanks for flag this up.

It looks like the issue could be related to the fact that Zwift doesn’t allow two workouts. Aside from that, Zwift has certain naming conventions for workouts, and duplicate names might not be allowed to avoid confusion when organizing or tracking them.

Here are some things you could check or try:

  1. Unique Workout Names: Ensure that each workout has a unique name. Even a slight difference, such as adding a suffix.
  2. File Naming Conflicts: In addition to ensuring the workout names are unique, double-check the file names themselves (i.e., the actual .zwo file names) in the /Documents/Zwift/Workouts/{user_id} folder. If they have the same name, Zwift might have trouble distinguishing between the two, even if the contents are different.
  3. XML Formatting: It could be worth looking for any hidden discrepancies in the XML formatting of the file. Although both XMLs might appear similar, small details (like an extra space, a missing tag, or a line) might prevent one from being imported straight away.
  4. You can use an XML validator online to ensure that the file structure is correct. This could help you catch any potential issues that are preventing the workout from being imported.
1 Like