Videojs VHS library used to stream HLS and DASH video is missing playlist parse errors validation. In other words, if playlist file is loaded, but this is an empty file, or playlist content is not a valid m3u8 or dash playlist, the player will not throw any error and offline plugin cannot work. We already reported this important missing VHS functionality to video.js devs. This issue doesn't concern alternative Hlsjs plugin and hls.js library. Hls.js does validate playlist for parse errors and throws an error to videojs, so the Offline plugin will work.
For the moment we added new functionality to the latest version of the Offline plugin, in case when using VHS and a playlist is not in a valid format. The user can define a timeout value for the media load event. If media not loaded, offline plugin is activated. The default value for loadTimeout option is 0 and this means that timeout function will not be used. Set any other value in milliseconds to use load timeout function.