To simplify things and help our users to be more productive, we have archived the current forum and focus our efforts on helping developers on Stack Overflow. You can post new questions on Stack Overflow or join our Discord channel.
It looks like there is a loadPersistedScssCache method in the com.vaadin.server.VaadinSerlvet that makes a call to javax.servlet.ServletContext.getRealPath(..). This is defined to return null if the WAR is not exploded. The VaadinServlet uses the real path the parse the cache file from the file system directly. In OSGI environments, WAR's are not exploded and as such there is no real path, and the css themes are not retrievable.
It would be nice if there was a fallback approach in the case that the exploded WAR was not available. Perhaps persisting to a temp directory or the like.
I agree, just got a similar issue in one embedded setup, which had no OSGi in it. Would you make a ticke about it to dev.vaadin.com? That's the only way to get this forward.
BTW. I don't though suggest to use on runtime scss compilation at all. It is better to have them compilation allways on. Even if you are developing theme you can pretty easily setup the standard scss compiler into "watch" mode.