Experiencing issues with widget class defined "in a synchronous way but it has asynchronous dependencies."

Hi, I’ve been in the process of updating my app from Theia 1.31.1 to 1.39.0 (largely derived from following Theia Blueprint) and in the process experienced an issue where my widgets weren’t quite loading properly, to the point where the treeview wasn’t appearing and I couldn’t do keyboard shortcuts, not even ctrl+alt+i to open the frontend console on electron build.

I ended up creating a browser build to finally see the frontend console (thanks for the recent commits on doing this to the theia blueprint demo) and noticed an error along the lines of saying my widget’s class was defined “in a synchronous way but it has asynchronous dependencies.” What’s causing this?

(next post will have the answer)

Turned out I forgot to update my widgets when updating inversify to 6.0.1 per Update inversify to 6.0.1 (#12425) · eclipse-theia/theia@c1a2b7b · GitHub . Basically the widget contribution classes (i.e. AbstractViewContribution ) needed to change their init from:

    @postConstruct()
    protected async init(): Promise<void> {

to

    @postConstruct()
    protected init(): void {
        this.doInit();
    }
    
    protected async doInit(): Promise<void> {

EDIT: I didn’t realize there was already a migration guide that goes into this: https://github.com/eclipse-theia/theia/blob/master/doc/Migration.md#inversify-60 (h/t @msujew )