Knime failing to start: GTK issue?

I had installed Knime 3.5.1 on my Ubuntu 17.10 machine and it was working OK. Following a "power cycle" it now doesn't. It shows the startup banner (with all the extensions that are installed etc) but then fails to start up the user interface with the message:

An error has occurred. See the log file ....../knime-workspace/.metadata.log.

In the terminal where I started knime it says

Gtk-Message: GtkDialog mapped without a transient parent. This is discouraged.

and then this multiple times

(KNIME:7989): GLib-CRITICAL **: gbase64encode_step: assertion 'in != NULL' failed

The log file is very long and pretty dense so not posting the whole thing but can if it will help. It features a lot of issues like the ones pasted below. I have tried a fresh install of knime in a new directory. This doesn't help. I've tried updating the JRE and this doesn't either. I found some GTK issues reported for knime here: https://www.knime.com/faq#q6 but following these has not solved it.

 

What should I do to solve this?

thanks,

Andrew

========================================================================================

!ENTRY org.eclipse.e4.ui.workbench 4 0 2018-01-05 11:04:40.021

!MESSAGE FrameworkEvent ERROR

!STACK 0

org.eclipse.swt.SWTException: Device is disposed

    at org.eclipse.swt.SWT.error(SWT.java:4533)

    at org.eclipse.swt.SWT.error(SWT.java:4448)

    at org.eclipse.swt.SWT.error(SWT.java:4419)

    at org.eclipse.swt.widgets.Display.error(Display.java:1236)

    at org.eclipse.swt.widgets.Display.asyncExec(Display.java:775)

    at org.eclipse.ui.internal.WorkbenchWindow$9.changed(WorkbenchWindow.jav

a:726)

    at org.eclipse.e4.core.internal.contexts.TrackableComputationExt.update(

TrackableComputationExt.java:114)

    at org.eclipse.e4.core.internal.contexts.EclipseContext.processScheduled

(EclipseContext.java:343)

    at org.eclipse.e4.core.internal.contexts.EclipseContext.dispose(EclipseC

ontext.java:178)

    at org.eclipse.e4.core.internal.contexts.EclipseContext.dispose(EclipseC

ontext.java:161)

    at org.eclipse.e4.core.internal.contexts.EclipseContext.dispose(EclipseC

ontext.java:161)

    at org.eclipse.e4.core.internal.contexts.EclipseContext.dispose(EclipseC

ontext.java:161)

    at org.eclipse.e4.core.internal.contexts.EclipseContext.dispose(EclipseC

ontext.java:161)

    at org.eclipse.e4.core.internal.contexts.osgi.EclipseContextOSGi.dispose

(EclipseContextOSGi.java:106)

    at org.eclipse.e4.core.internal.contexts.osgi.EclipseContextOSGi.bundleC

hanged(EclipseContextOSGi.java:139)

    at org.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(B

undleContextImpl.java:903)

    at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventM

anager.java:230)

    at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchr

onous(ListenerQueue.java:148)

    at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBund

leEventPrivileged(EquinoxEventPublisher.java:213)

    at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBund

leEvent(EquinoxEventPublisher.java:120)

    at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBund

leEvent(EquinoxEventPublisher.java:112)

    at org.eclipse.osgi.internal.framework.EquinoxContainerAdaptor.publishMo

duleEvent(EquinoxContainerAdaptor.java:156)

    at org.eclipse.osgi.container.Module.publishEvent(Module.java:476)

    at org.eclipse.osgi.container.Module.doStop(Module.java:634)

    at org.eclipse.osgi.container.Module.stop(Module.java:498)

    at org.eclipse.osgi.container.SystemModule.stop(SystemModule.java:202)

    at org.eclipse.osgi.internal.framework.EquinoxBundle$SystemBundle$Equino

xSystemModule$1.run(EquinoxBundle.java:165)

    at java.lang.Thread.run(Thread.java:748)

!ENTRY org.eclipse.core.jobs 4 2 2018-01-05 11:04:42.251

!MESSAGE An internal error occurred during: "Workflow Coach loader".

!STACK 0

java.lang.IllegalStateException: Need an underlying widget to be able to set the

 input.(Has the widget been disposed?)

    at org.eclipse.jface.viewers.StructuredViewer.setInput(StructuredViewer.

java:1687)

    at org.knime.workbench.workflowcoach.ui.WorkflowCoachView.lambda$7(Workf

lowCoachView.java:634)

    at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:233)

    at org.eclipse.swt.widgets.Display.syncExec(Display.java:5406)

    at org.knime.workbench.workflowcoach.ui.WorkflowCoachView.updateInput(Wo

rkflowCoachView.java:632)

    at org.knime.workbench.workflowcoach.ui.WorkflowCoachView.access$2(Workf

lowCoachView.java:628)

    at org.knime.workbench.workflowcoach.ui.WorkflowCoachView$3.run(Workflow

CoachView.java:257)

    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)

!ENTRY org.eclipse.ui.workbench 4 0 2018-01-05 11:04:42.251

!MESSAGE Widget is disposed

!STACK 0

org.eclipse.swt.SWTException: Widget is disposed

    at org.eclipse.swt.SWT.error(SWT.java:4533)

    at org.eclipse.swt.SWT.error(SWT.java:4448)

    at org.eclipse.swt.SWT.error(SWT.java:4419)

    at org.eclipse.swt.widgets.Display.error(Display.java:1236)

    at org.eclipse.swt.widgets.Display.checkDevice(Display.java:814)

    at org.eclipse.swt.widgets.Display.getShells(Display.java:2517)

    at org.eclipse.ui.internal.progress.ProgressManagerUtil.getModalShellExc

luding(ProgressManagerUtil.java:321)

    at org.eclipse.ui.internal.progress.ProgressManagerUtil.getDefaultParent

(ProgressManagerUtil.java:376)

    at org.eclipse.ui.internal.statushandlers.InternalDialog.<init>(Internal

Dialog.java:155)

    at org.eclipse.ui.internal.statushandlers.WorkbenchStatusDialogManagerIm

pl.doAddStatusAdapter(WorkbenchStatusDialogManagerImpl.java:260)

    at org.eclipse.ui.internal.statushandlers.WorkbenchStatusDialogManagerIm

pl.addStatusAdapter(WorkbenchStatusDialogManagerImpl.java:197)

    at org.eclipse.ui.statushandlers.WorkbenchStatusDialogManager.addStatusA

dapter(WorkbenchStatusDialogManager.java:158)

    at org.eclipse.ui.statushandlers.WorkbenchErrorHandler.showStatusAdapter

(WorkbenchErrorHandler.java:95)

    at org.eclipse.ui.statushandlers.WorkbenchErrorHandler.handle(WorkbenchE

rrorHandler.java:49)

    at org.eclipse.ui.internal.WorkbenchErrorHandlerProxy.handle(WorkbenchEr

rorHandlerProxy.java:31)

    at org.eclipse.ui.statushandlers.StatusManager.handle(StatusManager.java

:204)

    at org.eclipse.ui.internal.progress.ProgressManager$2.done(ProgressManag

er.java:437)

    at org.eclipse.core.internal.jobs.JobListeners$3.notify(JobListeners.jav

a:42)

    at org.eclipse.core.internal.jobs.JobListeners.doNotify(JobListeners.jav

a:99)

    at org.eclipse.core.internal.jobs.JobListeners.done(JobListeners.java:14

4)

    at org.eclipse.core.internal.jobs.JobManager.endJob(JobManager.java:694)

    at org.eclipse.core.internal.jobs.WorkerPool.endJob(WorkerPool.java:105)

    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:72)

!ENTRY org.eclipse.core.jobs 4 2 2018-01-05 11:04:42.252

!MESSAGE An internal error occurred during: "Workflow Coach loader".

!STACK 0

java.lang.IllegalStateException: Need an underlying widget to be able to set the

 input.(Has the widget been disposed?)

    at org.eclipse.jface.viewers.StructuredViewer.setInput(StructuredViewer.

java:1687)

    at org.knime.workbench.workflowcoach.ui.WorkflowCoachView.lambda$7(Workf

lowCoachView.java:634)

    at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:233)

    at org.eclipse.swt.widgets.Display.syncExec(Display.java:5406)

    at org.knime.workbench.workflowcoach.ui.WorkflowCoachView.updateInput(Wo

rkflowCoachView.java:632)

    at org.knime.workbench.workflowcoach.ui.WorkflowCoachView.access$2(Workf

lowCoachView.java:628)

    at org.knime.workbench.workflowcoach.ui.WorkflowCoachView$3.run(Workflow

CoachView.java:257)

    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)