                 process.env.NODE_TLS_REJECT_UNAUTHORIZED = null
                 done pass
 
-        base = require(config.server)
-        base.start -> base.app.stassets.promise.then writeFiles
+        try
+            base = require(config.server)
+            base.start().then ->
+              base.app.stassets.promise.then writeFiles
+        catch e
+            # Assume it's already running. TODO look for EACCESS
+            console.log 'Failed to start client'
+            console.log e
+            console.log e.stack
+            process.env.URL = 'localhost:8080' # Next best guess
+            writeFiles()
 
     grunt.registerTask 'watchClient',
         [

        'src/client/tools/**/*.coffee': [ 'coffee' ]

    if true and (not process.env.DEBUG or process.env.COVER)
        preprocessors['www/application.js'] = [ 'coverage' ]

    grunt.Config =
        karma:

    flatten = (a, b)-> a.concat b
    prefix = (prefix)-> (str)->"#{prefix}#{str}"

    testFileOrdering = grunt.expandFileArg(
        config.client?.root or 'src/client/'
        config.client?.test?.glob or '**/'
    )

    grunt.Config =
        notify:
