I was trying to make a frontend extension work in Jupyter and felt that I spent unnecessarily long trying to fix it. Here are the issues that cropped up:

  1. The pinned dependency wasn’t updated, where the newest version included a fix I needed.
  2. I wasn’t sure if the extension was installed.
  3. I thought the extension didn’t work because it showed it was incorrectly being recognized as a server extension, however that was a red herring for not being included in the opt in group required to run the extension.
  4. The extension was not able to find its plugin.json which was confusing to me because I didn’t understand how that was being included in the built assets and if this was an issue with it not being included or the development build not including it in the search paths.
  5. I didn’t know how an extension advertises itself as an extension or is found, so was confused with Jupyter trying to load it as a server extension.
  6. Not being able to develop the extension and live preview changes was very frustrating and made the process very slow.
  7. The requested URI was being stripped of a forward slash and I wasn’t able to quickly deduce where that was happening (while reading it from a static file, while handling it in the frontend extension, in the server handler). This was partly due to not taking a break and thinking about it, and also partly due to not being able to attach a debugger at the problematic areas.