So I caught the problem. You won't actually see the symptom anymore because your javascript is running and that replaces the non-existent image reference with a good one. But it's a bug that should be fixed anyway.
Here's what's in the tags file:
currentwdir|-|// Current wind bearing as a compass point - e.g. ESE:|:
wspeed|0|// The 10-minute average, if you have Cumulus set to calculate a 10-minute average. Otherwise, it's the latest 'wind' value from the console:|:
avgbearing|0|// Average wind bearing in degrees over last 10 minutes. Range 1-360, 0=Calm:|:
wdir|-|// Average wind bearing over last 10 minutes as a compass point - e.g. ESE:|:
wgust|2|// The highest wind reading in the last 10 minutes. Corresponds to 'gust' on the Cumulus main screen.:|:
When the speed is zero but the gust is non-zero, both wind direction values are "-". And that's what gets used to form the file name.
The code where $dirlabel is set is in CU-defs.php.
$dirlabel = $WX['wdir'];
There is a check for an edge condition, but that isn't happening here and the repair doesn't fix the problem (currentwindir is also "-").
if($dirlabel == '---'){$dirlabel = $WX['currentwdir'];} // use current winddir when wdir='---' for avg=0.0 wind
Where this goes sideways is in ajax-dashboard.php.
$wr = $imagesDir . $wrName . $dirlabel . $wrType; // normal wind rose
$wrtext = langtransstr('Wind from') ." " . langtransstr($dirlabel);
if ( ((float)strip_units($avgspd) + (float) strip_units($gstspd) < 0.1 ) and
($wrCalm <> '') ) { // use calm instead
$wr = $imagesDir . $wrCalm;
$wrtext = $bftspeedtext;
}
Because $gstspd is >= 0.1, the default file name using $dirlabel ("-") is generated.
I'll defer to Ken for a real fix, but what beteljuice suggested is a workaround. Or maybe it doesn't bother you anymore now that it gets corrected when the javascript code runs. Anyway, I'm not sure why the data doesn't match the behavior expected by the CU code and I'm totally out of my wheelhouse with Cumulus.