Talk:RESTBase

We welcome your comments and technical feedback about the new RESTBase API. For bugs and issues, the recommended way to report issues is https://phabricator.wikimedia.org/

Previous discussion is at Talk:RESTBase/Archive 1.

versioning

why https://rest.wikimedia.org/en.wikipedia.org/v1/?doc as opposed to https://rest.wikimedia.org/v1/en.wikipedia.org/?doc

ie. why isn't the domain included in the version? Arlolra (talk) 00:28, 11 March 2015 (UTC)

This allows us more flexibility in that each domain may run different versions of the API, which closely resembles the current state of WM projects - not all of them run the same MW version, nor do they have the same features enabled. Mobrovac-WMF (talk) 08:35, 11 March 2015 (UTC)
you're versioning the api though ... if a domain wants to use an older version, they would still have that option
you don't anticipate any future use case that isn't partitioned by domain? Arlolra (talk) 06:10, 12 March 2015 (UTC)
Ah, I see, the confusion is about the URI itself. We do not have any particular restrictions on the domain name itself, it can be "blah" as far as we are concerned, so you can have also stuff in there that are domain-agnostic. This layout allows us to activate/deactivate stuff per-domain easily.
A side note: the URL rest.wikimedia.org/en.wikipedia.org/v1/ should be though of as:
  • domain (host/port): rest.wikimedia.org/en.wikipedia.org
  • path: v1/
What this allows us is a (possible future) mapping to domains themselves directly, so that e.g. en.wikipedia.org/rest-api/ (or any other path) can be transparently mapped to rest.wikimedia.org/en.wikipedia.org/ . Mobrovac-WMF (talk) 11:02, 12 March 2015 (UTC)
if you can have stuff in there that's domain-agnostic, how do you distinguish the two?
you can still map
en.wikipedia.org/rest-api/v1/
to
rest.wikimedia.org/v1/en.wikipedia.org/ Arlolra (talk) 13:57, 12 March 2015 (UTC)
Arlo, all APIs are versioned per logical domain. We could have an additional global version like rest.wikimedia.org/v1/en.wikipedia.org/v1/, but didn't see a strong use case for this, as this would only version the domain part. Gabriel Wicke (GWicke) (talk) 16:12, 12 March 2015 (UTC)

Need clarification: high volume API timeframe

The following discussion is closed. Please do not modify it. Subsequent comments should be made on the appropriate discussion page. No further edits should be made to this discussion.


On the RESTbase docs page for rest_v1 it says:

High-volume access

  • Don't perform more than 500 requests/s to this API.

500 requests per what amount of time? Minute? Hour?

Here's how google specifies usage limits Fasnoosh (talk) 04:27, 17 December 2015 (UTC)

I guess the “/s” part means “per second”… — Ltrlg (talk), 15:45, 8 January 2016 (UTC)
Indeed, '/s' refers to 'seconds' Mobrovac-WMF (talk) 22:46, 12 January 2016 (UTC)
Good point. I think I speed-read that, and squished the s's together.
Might be helpful instead to show it like this: requests / sec Fasnoosh (talk) 01:35, 31 January 2017 (UTC)
The discussion above is closed. Please do not modify it. No further edits should be made to this discussion.

Swagger for Search API?

I don't see Swagger for the Search API in RESTbase:

API:Search

https://github.com/wikimedia/restbase Guitpicker07 (talk) 15:20, 17 December 2015 (UTC)

Search is not yet available in RESTBase at this point, I'm afraid. Our goal is to first complete the API layout with stable-addressable content. Mobrovac-WMF (talk) 22:45, 12 January 2016 (UTC)

all-days parameter Pageviews

When I try to use the all-days parameter I get the message
"The date(s) you used are valid, but we either do not have data for those date(s), or the project you asked for is not loaded yet. Please check https://wikimedia.org/api/rest_v1/?doc for more information."
As the data for the month in question appear to be present: is there other data that is not loaded yet? MarcoSwart (talk) 18:11, 18 January 2016 (UTC)

One of the API devs here. The reason is that, unfortunately, we had performance problems when computing the monthly top articles. So we beed to change the algorithm and we haven't gotten to that yet. We have a tracking task in phabricator: https://phabricator.wikimedia.org/T120113

Milimetric (WMF) (talk) 01:51, 28 January 2016 (UTC)
@MarcoSwart could you provide the full URL you were using? Mobrovac-WMF (talk) 01:37, 28 January 2016 (UTC)
I tried several, but the one I really wanted was:
https://wikimedia.org/api/rest_v1/metrics/pageviews/top/nl.wiktionary/all-access/2015/12/all-days MarcoSwart (talk) 18:10, 30 January 2016 (UTC)

editor will not load

The following discussion is closed. Please do not modify it. Subsequent comments should be made on the appropriate discussion page. No further edits should be made to this discussion.


We are trying to install RESTbase to support the wikieditor-VisualEditor switch. It seems that REST base is working fine (on localhost) but the VisualEditor will not load, providing a http 0 server error.

Also the old Wikieditor will not load, and the console sends 'Uncaught TypeError: Cannot read property 'id' of undefined':

I guess it has to do with a missing configuration but any clue will be very helpful. Wess (talk) 21:46, 9 May 2016 (UTC)

Apparently the editor issue was due to another extension that was not up to date. However the VisualEditor http 0 issue is still present... Wess (talk) 18:31, 14 May 2016 (UTC)
If RESTBase is working on localhost, then this is likely a VE-related issue. Try to get help on Extension:VisualEditor . You need to provide them with the versions of MW and VE you are running, along with your LocalSettings.php configuration. Also useful would be to get the stack trace of the error you see on the console. Mobrovac-WMF (talk) 08:11, 19 May 2016 (UTC)
Thanks.
Apparently the issue was pointing VE RestbaseURL to localHost rather than to the external url. Wess (talk) 09:01, 19 May 2016 (UTC)
The discussion above is closed. Please do not modify it. No further edits should be made to this discussion.

Timeout waiting for config in worker

The following discussion is closed. Please do not modify it. Subsequent comments should be made on the appropriate discussion page. No further edits should be made to this discussion.


I'm trying to get RESTBase set up on my wiki. I've downloaded it, run npm install and updated the configuration. However, about 3-4 seconds after startup I get the above error message from node_modules/service-runner/lib/worker.js. In case it is relevant I'm running on Ubuntu 14.04 using SQLite. I expect it is something silly I've missed but any pointers would be much appreciated. Prh47bridge (talk) 12:01, 2 December 2016 (UTC)

This means that the worker never received the config from the master process, which is rather unusual. Could you try starting your service with `no_workers: 0` set in your config YAML and see if the service works? Mobrovac-WMF (talk) 15:28, 21 December 2016 (UTC)
Thanks for your response. I've tried it and that doesn't seem to make any difference. However, if I put "-n 0" on the command line it exits immediately with the message:
const P = require('bluebird');
^^^^^
{"name":"restbase","hostname":"XXXXX","pid":31218,"level":60,"err":{"message":"Use of const in strict mode.","name":"SyntaxError","stack":"SyntaxError: Use of const in strict mode.\n at Module._compile (module.js:439:25)\n at Object.Module._extensions..js (module.js:474:10)\n at Module.load (module.js:356:32)\n at Function.Module._load (module.js:312:12)\n at Module.require (module.js:364:17)\n at require (module.js:380:17)\n at Object.<anonymous> (/usr/local/restbase/node_modules/hyperswitch/index.js:3:18)\n at Module._compile (module.js:456:26)\n at Object.Module._extensions..js (module.js:474:10)\n at Module.load (module.js:356:32)\n at Function.Module._load (module.js:312:12)\n at Module.require (module.js:364:17)\n at require (module.js:380:17)\n at Master.BaseService._requireModule (/usr/local/restbase/node_modules/service-runner/lib/base_service.js:309:26)\n at P.map.then.self.serviceReturns (/usr/local/restbase/node_modules/service-runner/lib/worker.js:162:21)\n at tryCatcher (/usr/local/restbase/node_modules/bluebird/js/release/util.js:16:23)","moduleName":"hyperswitch","levelPath":"fatal/service-runner/worker"},"msg":"Use of const in strict mode.","time":"2016-12-24T10:34:40.865Z","v":0}
where XXXXX is the name of my server. There is no other error message.
Without the -n 0 I get:
{"name":"restbase","hostname":"XXXXX","pid":31224,"level":30,"levelPath":"info/service-runner","msg":"master(31224) initializing 4 workers","time":"2016-12-24T10:34:53.531Z","v":0}
{"name":"restbase","hostname":"XXXXX","pid":30911,"level":60,"err":{"message":"Object function Object() { [native code] } has no method 'assign'","name":"TypeError","stack":"TypeError: Object function Object() { [native code] } has no method 'assign'\n at /usr/local/restbase/node_modules/service-runner/lib/master.js:207:33\n at Promise._execute (/usr/local/restbase/node_modules/bluebird/js/release/debuggability.js:299:9)\n at Promise._resolveFromExecutor (/usr/local/restbase/node_modules/bluebird/js/release/promise.js:481:18)\n at new Promise (/usr/local/restbase/node_modules/bluebird/js/release/promise.js:77:14)\n at Master._startWorkers (/usr/local/restbase/node_modules/service-runner/lib/master.js:204:16)\n at /usr/local/restbase/node_modules/service-runner/lib/master.js:107:21\n at tryCatcher (/usr/local/restbase/node_modules/bluebird/js/release/util.js:16:23)\n at Promise._settlePromiseFromHandler (/usr/local/restbase/node_modules/bluebird/js/release/promise.js:510:31)\n at Promise._settlePromise (/usr/local/restbase/node_modules/bluebird/js/release/promise.js:567:18)\n at Promise._settlePromise0 (/usr/local/restbase/node_modules/bluebird/js/release/promise.js:612:10)\n at Promise._settlePromises (/usr/local/restbase/node_modules/bluebird/js/release/promise.js:691:18)\n at Async._drainQueue (/usr/local/restbase/node_modules/bluebird/js/release/async.js:138:16)\n at Async._drainQueues (/usr/local/restbase/node_modules/bluebird/js/release/async.js:148:10)\n at Async.drainQueues (/usr/local/restbase/node_modules/bluebird/js/release/async.js:17:14)\n at process._tickCallback (node.js:448:13)","levelPath":"fatal/service-runner/unhandled"},"msg":"Object function Object() { [native code] } has no method 'assign'","time":"2016-12-24T10:29:09.261Z","v":0}
The above text is in white and is followed by the error message regarding a timeout in red. My bad - I hadn't looked properly at the white text before and should have reported that. Am I missing a dependency? Prh47bridge (talk) 10:40, 24 December 2016 (UTC)
Are you using Node >= 4 ? These messages indicate that you might be running it on an older version. Is that the case? Note that RESTBase needs Node >= 4 in order to run properly. Mobrovac-WMF (talk) 14:57, 28 December 2016 (UTC)
That would be the problem then! The README.md file says I need 0.10+ and, since I've got 0.10.37, I assumed that would be ok. Suggest someone updates the README! Thanks for your help. Prh47bridge (talk) 15:50, 29 December 2016 (UTC)
Oh, right! Will update, thank you for pointing that out. Mobrovac-WMF (talk) 14:59, 3 January 2017 (UTC)
The discussion above is closed. Please do not modify it. No further edits should be made to this discussion.

Will it produce a mistake while try to get a sub page?

Like https://www.mediawiki.org/api/rest_v1/page/html/Content_translation/cxserver/Setup ?

( Trying to get this page's HTML version and get a error.)

{"type":"https://mediawiki.org/wiki/HyperSwitch/errors/bad_request","title":"Invalid parameters","method":"get","detail":"data.params.revision should be an integer","uri":"/www.mediawiki.org/v1/page/html/Content_translation/cxserver/Setup"} Ken Ookami Horo (talk) 09:56, 24 April 2017 (UTC)

Anyone know what's going on here? I've got the same issue, only with ElectronPdfRenderer and VisualEditor/parsoid . Mediawiki sites appear to be working fine, so there must be a way around it... Lord Aro (talk) 16:34, 7 November 2017 (UTC)

RESTBase, HTTPS and Mixed Content error

The following discussion is closed. Please do not modify it. Subsequent comments should be made on the appropriate discussion page. No further edits should be made to this discussion.


I have a mediawiki 1.28.2 site served over HTTPS. Both parsoid and restbase are running and served internally in containers. Parsoid works but when trying to use restbase functionality, I get:

load.php?debug=false&lang=en&modules=jquery%2Cmediawiki&only=scripts&skin=vector&version=00zsvrj:140 Mixed Content: The page at 'https://freecalifornia.wiki/index.php?title=Category:Help&action=edit' was loaded over HTTPS, but requested an insecure XMLHttpRequest endpoint 'http://restbase:7231/freecalifornia.wiki/v1/transform/wikitext/to/html/Category%3AHelp/10796'. This request has been blocked; the content must be served over HTTPS.

RESTBase load failed: error

Is there anyway to resolve this? Thanks. 66.133.74.101 (talk) 04:16, 10 October 2017 (UTC)

You must serve RESTBase through HTTPS. It can be with the method you prefer, there is some details there (for Parsoid but you only have to the change domain and ports for RESTBase) or you can you nginx (with proxy_pass). See also this other discussion (I experienced myself this issue and it was thanks to this other discussion I solved my issue). ~ Seb35 [^_^] 17:59, 15 October 2017 (UTC)
The discussion above is closed. Please do not modify it. No further edits should be made to this discussion.

Not able to start RESTBase server

I want to enable switching between wikitext and visualeditor edits. I follow installation instructions but when test restbase with

curl -v http://localhost:7231/localhost/mediawiki/v1/

I get this error.

* Hostname was NOT found in DNS cache

*   Trying 10.0.2.15...

* connect to 10.0.2.15 port 7231 failed: Conexión rehusada

* Failed to connect to 10.0.2.15 port 7231: Conexión rehusada

* Closing connection 0

curl: (7) Failed to connect to 10.0.2.15 port 7231: Conexión rehusada

I can connect to any other url, for example:

curl http://www.google.com

Parsoid is running. I am running wikimedia 1.29.2 on a virtual machine (Debian Jessie). This are some of the parameters for configuring /opt/restbase/config.yaml

    YOUR_WIKI_API_ENDPOINT    =  http://localhost/mediawiki/api.php

    YOUR_PARSOID_SERVER:PORT  =  http://localhost:8142

    YOUR_WIKI_WEBSITE         =  localhost/mediawiki

Any help please?

Thanks in advance Scejja (talk) 00:55, 23 November 2017 (UTC)

error: Failed at the sqlite3@3.1.13 install script 'node-pre-gyp install --fallback-to-build'.

Here is my trouble with RESTBase installation, need help :(

P.S.: I added param --unsafe-perm in order to trying fix error, but it didn't help. Without this param I have same error. I tried to install v. 0.18.1 and then 0.15.2 (thought, that mb I need a version, that was released in same time with parsoid, which is 0.6, bcz this is max version, that works on mediawiki 1.30).

npm ERR! Linux 4.4.0-127-generic

npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "install" "--unsafe-perm"

npm ERR! node v4.2.6

npm ERR! npm  v3.5.2

npm ERR! file sh

npm ERR! code ELIFECYCLE

npm ERR! errno ENOENT

npm ERR! syscall spawn

npm ERR! sqlite3@3.1.13 install: `node-pre-gyp install --fallback-to-build`

npm ERR! spawn ENOENT

npm ERR!

npm ERR! Failed at the sqlite3@3.1.13 install script 'node-pre-gyp install --fallback-to-build'. StRiANON (talk) 16:55, 29 May 2018 (UTC)

@Mobrovac-WMF Can you help please? StRiANON (talk) 03:56, 1 June 2018 (UTC)

[IMPORTANT/FASTER] Heroku not working, causes loop not start

I ran Parsoid on heroku, setted up and it's fine, IK RESTBase uses the same thing as Parsoid but I got the following error:

2018-09-13T09:16:28.755759+00:00 app[web.1]: {"name":"restbase","hostname":"1376627b-90bb-4581-b8a5-0d7933cf2e66","pid":21,"level":30,"levelPath":"info/service-runner","msg":"master(21) initializing 8 workers","time":"2018-09-13T09:16:28.753Z","v":0}
2018-09-13T09:16:30.489640+00:00 app[web.1]: {"name":"restbase","hostname":"1376627b-90bb-4581-b8a5-0d7933cf2e66","pid":32,"level":60,"err":{"message":"Cannot find module 'restbase-mod-table-sqlite'","name":"Error","stack":"Error: Cannot find module 'restbase-mod-table-sqlite'\n    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)\n    at Function.Module._load (internal/modules/cjs/loader.js:507:25)\n    at Module.require (internal/modules/cjs/loader.js:637:17)\n    at require (internal/modules/cjs/helpers.js:20:18)\n    at module.exports (/app/sys/table.js:17:12)\n    at Router._loadModule (/app/node_modules/hyperswitch/lib/router.js:229:26)\n    at P.each (/app/node_modules/hyperswitch/lib/router.js:255:25)\n    at tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Object.gotValue (/app/node_modules/bluebird/js/release/reduce.js:155:18)\n    at Object.gotAccum (/app/node_modules/bluebird/js/release/reduce.js:144:25)\n    at Object.tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Promise._settlePromiseFromHandler (/app/node_modules/bluebird/js/release/promise.js:512:31)\n    at Promise._settlePromise (/app/node_modules/bluebird/js/release/promise.js:569:18)\n    at Promise._settlePromiseCtx (/app/node_modules/bluebird/js/release/promise.js:606:10)\n    at _drainQueueStep (/app/node_modules/bluebird/js/release/async.js:142:12)\n    at _drainQueue (/app/node_modules/bluebird/js/release/async.js:131:9)","code":"MODULE_NOT_FOUND"},"stack":"Error: Cannot find module 'restbase-mod-table-sqlite'\n    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)\n    at Function.Module._load (internal/modules/cjs/loader.js:507:25)\n    at Module.require (internal/modules/cjs/loader.js:637:17)\n    at require (internal/modules/cjs/helpers.js:20:18)\n    at module.exports (/app/sys/table.js:17:12)\n    at Router._loadModule (/app/node_modules/hyperswitch/lib/router.js:229:26)\n    at P.each (/app/node_modules/hyperswitch/lib/router.js:255:25)\n    at tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Object.gotValue (/app/node_modules/bluebird/js/release/reduce.js:155:18)\n    at Object.gotAccum (/app/node_modules/bluebird/js/release/reduce.js:144:25)\n    at Object.tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Promise._settlePromiseFromHandler (/app/node_modules/bluebird/js/release/promise.js:512:31)\n    at Promise._settlePromise (/app/node_modules/bluebird/js/release/promise.js:569:18)\n    at Promise._settlePromiseCtx (/app/node_modules/bluebird/js/release/promise.js:606:10)\n    at _drainQueueStep (/app/node_modules/bluebird/js/release/async.js:142:12)\n    at _drainQueue (/app/node_modules/bluebird/js/release/async.js:131:9)","levelPath":"fatal/startup","msg":"Message not supplied","time":"2018-09-13T09:16:30.487Z","v":0}
2018-09-13T09:16:31.970284+00:00 app[web.1]: {"name":"restbase","hostname":"1376627b-90bb-4581-b8a5-0d7933cf2e66","pid":43,"level":60,"err":{"message":"Cannot find module 'restbase-mod-table-sqlite'","name":"Error","stack":"Error: Cannot find module 'restbase-mod-table-sqlite'\n    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)\n    at Function.Module._load (internal/modules/cjs/loader.js:507:25)\n    at Module.require (internal/modules/cjs/loader.js:637:17)\n    at require (internal/modules/cjs/helpers.js:20:18)\n    at module.exports (/app/sys/table.js:17:12)\n    at Router._loadModule (/app/node_modules/hyperswitch/lib/router.js:229:26)\n    at P.each (/app/node_modules/hyperswitch/lib/router.js:255:25)\n    at tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Object.gotValue (/app/node_modules/bluebird/js/release/reduce.js:155:18)\n    at Object.gotAccum (/app/node_modules/bluebird/js/release/reduce.js:144:25)\n    at Object.tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Promise._settlePromiseFromHandler (/app/node_modules/bluebird/js/release/promise.js:512:31)\n    at Promise._settlePromise (/app/node_modules/bluebird/js/release/promise.js:569:18)\n    at Promise._settlePromiseCtx (/app/node_modules/bluebird/js/release/promise.js:606:10)\n    at _drainQueueStep (/app/node_modules/bluebird/js/release/async.js:142:12)\n    at _drainQueue (/app/node_modules/bluebird/js/release/async.js:131:9)","code":"MODULE_NOT_FOUND"},"stack":"Error: Cannot find module 'restbase-mod-table-sqlite'\n    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)\n    at Function.Module._load (internal/modules/cjs/loader.js:507:25)\n    at Module.require (internal/modules/cjs/loader.js:637:17)\n    at require (internal/modules/cjs/helpers.js:20:18)\n    at module.exports (/app/sys/table.js:17:12)\n    at Router._loadModule (/app/node_modules/hyperswitch/lib/router.js:229:26)\n    at P.each (/app/node_modules/hyperswitch/lib/router.js:255:25)\n    at tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Object.gotValue (/app/node_modules/bluebird/js/release/reduce.js:155:18)\n    at Object.gotAccum (/app/node_modules/bluebird/js/release/reduce.js:144:25)\n    at Object.tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Promise._settlePromiseFromHandler (/app/node_modules/bluebird/js/release/promise.js:512:31)\n    at Promise._settlePromise (/app/node_modules/bluebird/js/release/promise.js:569:18)\n    at Promise._settlePromiseCtx (/app/node_modules/bluebird/js/release/promise.js:606:10)\n    at _drainQueueStep (/app/node_modules/bluebird/js/release/async.js:142:12)\n    at _drainQueue (/app/node_modules/bluebird/js/release/async.js:131:9)","levelPath":"fatal/startup","msg":"Message not supplied","time":"2018-09-13T09:16:31.968Z","v":0}
2018-09-13T09:16:32.532162+00:00 app[web.1]: {"name":"restbase","hostname":"1376627b-90bb-4581-b8a5-0d7933cf2e66","pid":21,"level":50,"message":"worker died, restarting","worker_pid":32,"exit_code":1,"levelPath":"error/service-runner/master","msg":"worker died, restarting","time":"2018-09-13T09:16:32.531Z","v":0}
2018-09-13T09:16:33.993500+00:00 app[web.1]: {"name":"restbase","hostname":"1376627b-90bb-4581-b8a5-0d7933cf2e66","pid":21,"level":50,"message":"worker died, restarting","worker_pid":43,"exit_code":1,"levelPath":"error/service-runner/master","msg":"worker died, restarting","time":"2018-09-13T09:16:33.993Z","v":0}
2018-09-13T09:16:34.559277+00:00 app[web.1]: {"name":"restbase","hostname":"1376627b-90bb-4581-b8a5-0d7933cf2e66","pid":54,"level":60,"err":{"message":"Cannot find module 'restbase-mod-table-sqlite'","name":"Error","stack":"Error: Cannot find module 'restbase-mod-table-sqlite'\n    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)\n    at Function.Module._load (internal/modules/cjs/loader.js:507:25)\n    at Module.require (internal/modules/cjs/loader.js:637:17)\n    at require (internal/modules/cjs/helpers.js:20:18)\n    at module.exports (/app/sys/table.js:17:12)\n    at Router._loadModule (/app/node_modules/hyperswitch/lib/router.js:229:26)\n    at P.each (/app/node_modules/hyperswitch/lib/router.js:255:25)\n    at tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Object.gotValue (/app/node_modules/bluebird/js/release/reduce.js:155:18)\n    at Object.gotAccum (/app/node_modules/bluebird/js/release/reduce.js:144:25)\n    at Object.tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Promise._settlePromiseFromHandler (/app/node_modules/bluebird/js/release/promise.js:512:31)\n    at Promise._settlePromise (/app/node_modules/bluebird/js/release/promise.js:569:18)\n    at Promise._settlePromiseCtx (/app/node_modules/bluebird/js/release/promise.js:606:10)\n    at _drainQueueStep (/app/node_modules/bluebird/js/release/async.js:142:12)\n    at _drainQueue (/app/node_modules/bluebird/js/release/async.js:131:9)","code":"MODULE_NOT_FOUND"},"stack":"Error: Cannot find module 'restbase-mod-table-sqlite'\n    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)\n    at Function.Module._load (internal/modules/cjs/loader.js:507:25)\n    at Module.require (internal/modules/cjs/loader.js:637:17)\n    at require (internal/modules/cjs/helpers.js:20:18)\n    at module.exports (/app/sys/table.js:17:12)\n    at Router._loadModule (/app/node_modules/hyperswitch/lib/router.js:229:26)\n    at P.each (/app/node_modules/hyperswitch/lib/router.js:255:25)\n    at tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Object.gotValue (/app/node_modules/bluebird/js/release/reduce.js:155:18)\n    at Object.gotAccum (/app/node_modules/bluebird/js/release/reduce.js:144:25)\n    at Object.tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Promise._settlePromiseFromHandler (/app/node_modules/bluebird/js/release/promise.js:512:31)\n    at Promise._settlePromise (/app/node_modules/bluebird/js/release/promise.js:569:18)\n    at Promise._settlePromiseCtx (/app/node_modules/bluebird/js/release/promise.js:606:10)\n    at _drainQueueStep (/app/node_modules/bluebird/js/release/async.js:142:12)\n    at _drainQueue (/app/node_modules/bluebird/js/release/async.js:131:9)","levelPath":"fatal/startup","msg":"Message not supplied","time":"2018-09-13T09:16:34.557Z","v":0}
2018-09-13T09:16:36.417954+00:00 app[web.1]: {"name":"restbase","hostname":"1376627b-90bb-4581-b8a5-0d7933cf2e66","pid":61,"level":60,"err":{"message":"Cannot find module 'restbase-mod-table-sqlite'","name":"Error","stack":"Error: Cannot find module 'restbase-mod-table-sqlite'\n    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)\n    at Function.Module._load (internal/modules/cjs/loader.js:507:25)\n    at Module.require (internal/modules/cjs/loader.js:637:17)\n    at require (internal/modules/cjs/helpers.js:20:18)\n    at module.exports (/app/sys/table.js:17:12)\n    at Router._loadModule (/app/node_modules/hyperswitch/lib/router.js:229:26)\n    at P.each (/app/node_modules/hyperswitch/lib/router.js:255:25)\n    at tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Object.gotValue (/app/node_modules/bluebird/js/release/reduce.js:155:18)\n    at Object.gotAccum (/app/node_modules/bluebird/js/release/reduce.js:144:25)\n    at Object.tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Promise._settlePromiseFromHandler (/app/node_modules/bluebird/js/release/promise.js:512:31)\n    at Promise._settlePromise (/app/node_modules/bluebird/js/release/promise.js:569:18)\n    at Promise._settlePromiseCtx (/app/node_modules/bluebird/js/release/promise.js:606:10)\n    at _drainQueueStep (/app/node_modules/bluebird/js/release/async.js:142:12)\n    at _drainQueue (/app/node_modules/bluebird/js/release/async.js:131:9)","code":"MODULE_NOT_FOUND"},"stack":"Error: Cannot find module 'restbase-mod-table-sqlite'\n    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)\n    at Function.Module._load (internal/modules/cjs/loader.js:507:25)\n    at Module.require (internal/modules/cjs/loader.js:637:17)\n    at require (internal/modules/cjs/helpers.js:20:18)\n    at module.exports (/app/sys/table.js:17:12)\n    at Router._loadModule (/app/node_modules/hyperswitch/lib/router.js:229:26)\n    at P.each (/app/node_modules/hyperswitch/lib/router.js:255:25)\n    at tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Object.gotValue (/app/node_modules/bluebird/js/release/reduce.js:155:18)\n    at Object.gotAccum (/app/node_modules/bluebird/js/release/reduce.js:144:25)\n    at Object.tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Promise._settlePromiseFromHandler (/app/node_modules/bluebird/js/release/promise.js:512:31)\n    at Promise._settlePromise (/app/node_modules/bluebird/js/release/promise.js:569:18)\n    at Promise._settlePromiseCtx (/app/node_modules/bluebird/js/release/promise.js:606:10)\n    at _drainQueueStep (/app/node_modules/bluebird/js/release/async.js:142:12)\n    at _drainQueue (/app/node_modules/bluebird/js/release/async.js:131:9)","levelPath":"fatal/startup","msg":"Message not supplied","time":"2018-09-13T09:16:36.411Z","v":0}
2018-09-13T09:16:36.591460+00:00 app[web.1]: {"name":"restbase","hostname":"1376627b-90bb-4581-b8a5-0d7933cf2e66","pid":21,"level":50,"message":"worker died, restarting","worker_pid":54,"exit_code":1,"levelPath":"error/service-runner/master","msg":"worker died, restarting","time":"2018-09-13T09:16:36.591Z","v":0}
2018-09-13T09:16:37.792692+00:00 app[web.1]: {"name":"restbase","hostname":"1376627b-90bb-4581-b8a5-0d7933cf2e66","pid":72,"level":60,"err":{"message":"Cannot find module 'restbase-mod-table-sqlite'","name":"Error","stack":"Error: Cannot find module 'restbase-mod-table-sqlite'\n    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)\n    at Function.Module._load (internal/modules/cjs/loader.js:507:25)\n    at Module.require (internal/modules/cjs/loader.js:637:17)\n    at require (internal/modules/cjs/helpers.js:20:18)\n    at module.exports (/app/sys/table.js:17:12)\n    at Router._loadModule (/app/node_modules/hyperswitch/lib/router.js:229:26)\n    at P.each (/app/node_modules/hyperswitch/lib/router.js:255:25)\n    at tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Object.gotValue (/app/node_modules/bluebird/js/release/reduce.js:155:18)\n    at Object.gotAccum (/app/node_modules/bluebird/js/release/reduce.js:144:25)\n    at Object.tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Promise._settlePromiseFromHandler (/app/node_modules/bluebird/js/release/promise.js:512:31)\n    at Promise._settlePromise (/app/node_modules/bluebird/js/release/promise.js:569:18)\n    at Promise._settlePromiseCtx (/app/node_modules/bluebird/js/release/promise.js:606:10)\n    at _drainQueueStep (/app/node_modules/bluebird/js/release/async.js:142:12)\n    at _drainQueue (/app/node_modules/bluebird/js/release/async.js:131:9)","code":"MODULE_NOT_FOUND"},"stack":"Error: Cannot find module 'restbase-mod-table-sqlite'\n    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)\n    at Function.Module._load (internal/modules/cjs/loader.js:507:25)\n    at Module.require (internal/modules/cjs/loader.js:637:17)\n    at require (internal/modules/cjs/helpers.js:20:18)\n    at module.exports (/app/sys/table.js:17:12)\n    at Router._loadModule (/app/node_modules/hyperswitch/lib/router.js:229:26)\n    at P.each (/app/node_modules/hyperswitch/lib/router.js:255:25)\n    at tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Object.gotValue (/app/node_modules/bluebird/js/release/reduce.js:155:18)\n    at Object.gotAccum (/app/node_modules/bluebird/js/release/reduce.js:144:25)\n    at Object.tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Promise._settlePromiseFromHandler (/app/node_modules/bluebird/js/release/promise.js:512:31)\n    at Promise._settlePromise (/app/node_modules/bluebird/js/release/promise.js:569:18)\n    at Promise._settlePromiseCtx (/app/node_modules/bluebird/js/release/promise.js:606:10)\n    at _drainQueueStep (/app/node_modules/bluebird/js/release/async.js:142:12)\n    at _drainQueue (/app/node_modules/bluebird/js/release/async.js:131:9)","levelPath":"fatal/startup","msg":"Message not supplied","time":"2018-09-13T09:16:37.791Z","v":0}
2018-09-13T09:16:38.570084+00:00 app[web.1]: {"name":"restbase","hostname":"1376627b-90bb-4581-b8a5-0d7933cf2e66","pid":21,"level":50,"message":"worker died, restarting","worker_pid":61,"exit_code":1,"levelPath":"error/service-runner/master","msg":"worker died, restarting","time":"2018-09-13T09:16:38.569Z","v":0}
2018-09-13T09:16:39.215458+00:00 app[web.1]: {"name":"restbase","hostname":"1376627b-90bb-4581-b8a5-0d7933cf2e66","pid":79,"level":60,"err":{"message":"Cannot find module 'restbase-mod-table-sqlite'","name":"Error","stack":"Error: Cannot find module 'restbase-mod-table-sqlite'\n    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)\n    at Function.Module._load (internal/modules/cjs/loader.js:507:25)\n    at Module.require (internal/modules/cjs/loader.js:637:17)\n    at require (internal/modules/cjs/helpers.js:20:18)\n    at module.exports (/app/sys/table.js:17:12)\n    at Router._loadModule (/app/node_modules/hyperswitch/lib/router.js:229:26)\n    at P.each (/app/node_modules/hyperswitch/lib/router.js:255:25)\n    at tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Object.gotValue (/app/node_modules/bluebird/js/release/reduce.js:155:18)\n    at Object.gotAccum (/app/node_modules/bluebird/js/release/reduce.js:144:25)\n    at Object.tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Promise._settlePromiseFromHandler (/app/node_modules/bluebird/js/release/promise.js:512:31)\n    at Promise._settlePromise (/app/node_modules/bluebird/js/release/promise.js:569:18)\n    at Promise._settlePromiseCtx (/app/node_modules/bluebird/js/release/promise.js:606:10)\n    at _drainQueueStep (/app/node_modules/bluebird/js/release/async.js:142:12)\n    at _drainQueue (/app/node_modules/bluebird/js/release/async.js:131:9)","code":"MODULE_NOT_FOUND"},"stack":"Error: Cannot find module 'restbase-mod-table-sqlite'\n    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)\n    at Function.Module._load (internal/modules/cjs/loader.js:507:25)\n    at Module.require (internal/modules/cjs/loader.js:637:17)\n    at require (internal/modules/cjs/helpers.js:20:18)\n    at module.exports (/app/sys/table.js:17:12)\n    at Router._loadModule (/app/node_modules/hyperswitch/lib/router.js:229:26)\n    at P.each (/app/node_modules/hyperswitch/lib/router.js:255:25)\n    at tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Object.gotValue (/app/node_modules/bluebird/js/release/reduce.js:155:18)\n    at Object.gotAccum (/app/node_modules/bluebird/js/release/reduce.js:144:25)\n    at Object.tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Promise._settlePromiseFromHandler (/app/node_modules/bluebird/js/release/promise.js:512:31)\n    at Promise._settlePromise (/app/node_modules/bluebird/js/release/promise.js:569:18)\n    at Promise._settlePromiseCtx (/app/node_modules/bluebird/js/release/promise.js:606:10)\n    at _drainQueueStep (/app/node_modules/bluebird/js/release/async.js:142:12)\n    at _drainQueue (/app/node_modules/bluebird/js/release/async.js:131:9)","levelPath":"fatal/startup","msg":"Message not supplied","time":"2018-09-13T09:16:39.213Z","v":0}
2018-09-13T09:16:39.857725+00:00 app[web.1]: {"name":"restbase","hostname":"1376627b-90bb-4581-b8a5-0d7933cf2e66","pid":21,"level":50,"message":"worker died, restarting","worker_pid":72,"exit_code":1,"levelPath":"error/service-runner/master","msg":"worker died, restarting","time":"2018-09-13T09:16:39.857Z","v":0}
2018-09-13T09:16:41.233839+00:00 app[web.1]: {"name":"restbase","hostname":"1376627b-90bb-4581-b8a5-0d7933cf2e66","pid":21,"level":50,"message":"worker died, restarting","worker_pid":79,"exit_code":1,"levelPath":"error/service-runner/master","msg":"worker died, restarting","time":"2018-09-13T09:16:41.233Z","v":0}
2018-09-13T09:16:43.405457+00:00 app[web.1]: {"name":"restbase","hostname":"1376627b-90bb-4581-b8a5-0d7933cf2e66","pid":90,"level":60,"err":{"message":"Cannot find module 'restbase-mod-table-sqlite'","name":"Error","stack":"Error: Cannot find module 'restbase-mod-table-sqlite'\n    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)\n    at Function.Module._load (internal/modules/cjs/loader.js:507:25)\n    at Module.require (internal/modules/cjs/loader.js:637:17)\n    at require (internal/modules/cjs/helpers.js:20:18)\n    at module.exports (/app/sys/table.js:17:12)\n    at Router._loadModule (/app/node_modules/hyperswitch/lib/router.js:229:26)\n    at P.each (/app/node_modules/hyperswitch/lib/router.js:255:25)\n    at tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Object.gotValue (/app/node_modules/bluebird/js/release/reduce.js:155:18)\n    at Object.gotAccum (/app/node_modules/bluebird/js/release/reduce.js:144:25)\n    at Object.tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Promise._settlePromiseFromHandler (/app/node_modules/bluebird/js/release/promise.js:512:31)\n    at Promise._settlePromise (/app/node_modules/bluebird/js/release/promise.js:569:18)\n    at Promise._settlePromiseCtx (/app/node_modules/bluebird/js/release/promise.js:606:10)\n    at _drainQueueStep (/app/node_modules/bluebird/js/release/async.js:142:12)\n    at _drainQueue (/app/node_modules/bluebird/js/release/async.js:131:9)","code":"MODULE_NOT_FOUND"},"stack":"Error: Cannot find module 'restbase-mod-table-sqlite'\n    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)\n    at Function.Module._load (internal/modules/cjs/loader.js:507:25)\n    at Module.require (internal/modules/cjs/loader.js:637:17)\n    at require (internal/modules/cjs/helpers.js:20:18)\n    at module.exports (/app/sys/table.js:17:12)\n    at Router._loadModule (/app/node_modules/hyperswitch/lib/router.js:229:26)\n    at P.each (/app/node_modules/hyperswitch/lib/router.js:255:25)\n    at tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Object.gotValue (/app/node_modules/bluebird/js/release/reduce.js:155:18)\n    at Object.gotAccum (/app/node_modules/bluebird/js/release/reduce.js:144:25)\n    at Object.tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Promise._settlePromiseFromHandler (/app/node_modules/bluebird/js/release/promise.js:512:31)\n    at Promise._settlePromise (/app/node_modules/bluebird/js/release/promise.js:569:18)\n    at Promise._settlePromiseCtx (/app/node_modules/bluebird/js/release/promise.js:606:10)\n    at _drainQueueStep (/app/node_modules/bluebird/js/release/async.js:142:12)\n    at _drainQueue (/app/node_modules/bluebird/js/release/async.js:131:9)","levelPath":"fatal/startup","msg":"Message not supplied","time":"2018-09-13T09:16:43.355Z","v":0}
2018-09-13T09:16:44.671093+00:00 app[web.1]: {"name":"restbase","hostname":"1376627b-90bb-4581-b8a5-0d7933cf2e66","pid":112,"level":60,"err":{"message":"Cannot find module 'restbase-mod-table-sqlite'","name":"Error","stack":"Error: Cannot find module 'restbase-mod-table-sqlite'\n    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)\n    at Function.Module._load (internal/modules/cjs/loader.js:507:25)\n    at Module.require (internal/modules/cjs/loader.js:637:17)\n    at require (internal/modules/cjs/helpers.js:20:18)\n    at module.exports (/app/sys/table.js:17:12)\n    at Router._loadModule (/app/node_modules/hyperswitch/lib/router.js:229:26)\n    at P.each (/app/node_modules/hyperswitch/lib/router.js:255:25)\n    at tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Object.gotValue (/app/node_modules/bluebird/js/release/reduce.js:155:18)\n    at Object.gotAccum (/app/node_modules/bluebird/js/release/reduce.js:144:25)\n    at Object.tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Promise._settlePromiseFromHandler (/app/node_modules/bluebird/js/release/promise.js:512:31)\n    at Promise._settlePromise (/app/node_modules/bluebird/js/release/promise.js:569:18)\n    at Promise._settlePromiseCtx (/app/node_modules/bluebird/js/release/promise.js:606:10)\n    at _drainQueueStep (/app/node_modules/bluebird/js/release/async.js:142:12)\n    at _drainQueue (/app/node_modules/bluebird/js/release/async.js:131:9)","code":"MODULE_NOT_FOUND"},"stack":"Error: Cannot find module 'restbase-mod-table-sqlite'\n    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)\n    at Function.Module._load (internal/modules/cjs/loader.js:507:25)\n    at Module.require (internal/modules/cjs/loader.js:637:17)\n    at require (internal/modules/cjs/helpers.js:20:18)\n    at module.exports (/app/sys/table.js:17:12)\n    at Router._loadModule (/app/node_modules/hyperswitch/lib/router.js:229:26)\n    at P.each (/app/node_modules/hyperswitch/lib/router.js:255:25)\n    at tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Object.gotValue (/app/node_modules/bluebird/js/release/reduce.js:155:18)\n    at Object.gotAccum (/app/node_modules/bluebird/js/release/reduce.js:144:25)\n    at Object.tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Promise._settlePromiseFromHandler (/app/node_modules/bluebird/js/release/promise.js:512:31)\n    at Promise._settlePromise (/app/node_modules/bluebird/js/release/promise.js:569:18)\n    at Promise._settlePromiseCtx (/app/node_modules/bluebird/js/release/promise.js:606:10)\n    at _drainQueueStep (/app/node_modules/bluebird/js/release/async.js:142:12)\n    at _drainQueue (/app/node_modules/bluebird/js/release/async.js:131:9)","levelPath":"fatal/startup","msg":"Message not supplied","time":"2018-09-13T09:16:44.669Z","v":0}
2018-09-13T09:16:44.804767+00:00 app[web.1]: {"name":"restbase","hostname":"1376627b-90bb-4581-b8a5-0d7933cf2e66","pid":101,"level":60,"err":{"message":"Cannot find module 'restbase-mod-table-sqlite'","name":"Error","stack":"Error: Cannot find module 'restbase-mod-table-sqlite'\n    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)\n    at Function.Module._load (internal/modules/cjs/loader.js:507:25)\n    at Module.require (internal/modules/cjs/loader.js:637:17)\n    at require (internal/modules/cjs/helpers.js:20:18)\n    at module.exports (/app/sys/table.js:17:12)\n    at Router._loadModule (/app/node_modules/hyperswitch/lib/router.js:229:26)\n    at P.each (/app/node_modules/hyperswitch/lib/router.js:255:25)\n    at tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Object.gotValue (/app/node_modules/bluebird/js/release/reduce.js:155:18)\n    at Object.gotAccum (/app/node_modules/bluebird/js/release/reduce.js:144:25)\n    at Object.tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Promise._settlePromiseFromHandler (/app/node_modules/bluebird/js/release/promise.js:512:31)\n    at Promise._settlePromise (/app/node_modules/bluebird/js/release/promise.js:569:18)\n    at Promise._settlePromiseCtx (/app/node_modules/bluebird/js/release/promise.js:606:10)\n    at _drainQueueStep (/app/node_modules/bluebird/js/release/async.js:142:12)\n    at _drainQueue (/app/node_modules/bluebird/js/release/async.js:131:9)","code":"MODULE_NOT_FOUND"},"stack":"Error: Cannot find module 'restbase-mod-table-sqlite'\n    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)\n    at Function.Module._load (internal/modules/cjs/loader.js:507:25)\n    at Module.require (internal/modules/cjs/loader.js:637:17)\n    at require (internal/modules/cjs/helpers.js:20:18)\n    at module.exports (/app/sys/table.js:17:12)\n    at Router._loadModule (/app/node_modules/hyperswitch/lib/router.js:229:26)\n    at P.each (/app/node_modules/hyperswitch/lib/router.js:255:25)\n    at tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Object.gotValue (/app/node_modules/bluebird/js/release/reduce.js:155:18)\n    at Object.gotAccum (/app/node_modules/bluebird/js/release/reduce.js:144:25)\n    at Object.tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Promise._settlePromiseFromHandler (/app/node_modules/bluebird/js/release/promise.js:512:31)\n    at Promise._settlePromise (/app/node_modules/bluebird/js/release/promise.js:569:18)\n    at Promise._settlePromiseCtx (/app/node_modules/bluebird/js/release/promise.js:606:10)\n    at _drainQueueStep (/app/node_modules/bluebird/js/release/async.js:142:12)\n    at _drainQueue (/app/node_modules/bluebird/js/release/async.js:131:9)","levelPath":"fatal/startup","msg":"Message not supplied","time":"2018-09-13T09:16:44.803Z","v":0}
2018-09-13T09:16:45.486066+00:00 app[web.1]: {"name":"restbase","hostname":"1376627b-90bb-4581-b8a5-0d7933cf2e66","pid":21,"level":50,"message":"worker died, restarting","worker_pid":90,"exit_code":1,"levelPath":"error/service-runner/master","msg":"worker died, restarting","time":"2018-09-13T09:16:45.485Z","v":0}
2018-09-13T09:16:46.327638+00:00 app[web.1]: {"name":"restbase","hostname":"1376627b-90bb-4581-b8a5-0d7933cf2e66","pid":119,"level":60,"err":{"message":"Cannot find module 'restbase-mod-table-sqlite'","name":"Error","stack":"Error: Cannot find module 'restbase-mod-table-sqlite'\n    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)\n    at Function.Module._load (internal/modules/cjs/loader.js:507:25)\n    at Module.require (internal/modules/cjs/loader.js:637:17)\n    at require (internal/modules/cjs/helpers.js:20:18)\n    at module.exports (/app/sys/table.js:17:12)\n    at Router._loadModule (/app/node_modules/hyperswitch/lib/router.js:229:26)\n    at P.each (/app/node_modules/hyperswitch/lib/router.js:255:25)\n    at tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Object.gotValue (/app/node_modules/bluebird/js/release/reduce.js:155:18)\n    at Object.gotAccum (/app/node_modules/bluebird/js/release/reduce.js:144:25)\n    at Object.tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Promise._settlePromiseFromHandler (/app/node_modules/bluebird/js/release/promise.js:512:31)\n    at Promise._settlePromise (/app/node_modules/bluebird/js/release/promise.js:569:18)\n    at Promise._settlePromiseCtx (/app/node_modules/bluebird/js/release/promise.js:606:10)\n    at _drainQueueStep (/app/node_modules/bluebird/js/release/async.js:142:12)\n    at _drainQueue (/app/node_modules/bluebird/js/release/async.js:131:9)","code":"MODULE_NOT_FOUND"},"stack":"Error: Cannot find module 'restbase-mod-table-sqlite'\n    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)\n    at Function.Module._load (internal/modules/cjs/loader.js:507:25)\n    at Module.require (internal/modules/cjs/loader.js:637:17)\n    at require (internal/modules/cjs/helpers.js:20:18)\n    at module.exports (/app/sys/table.js:17:12)\n    at Router._loadModule (/app/node_modules/hyperswitch/lib/router.js:229:26)\n    at P.each (/app/node_modules/hyperswitch/lib/router.js:255:25)\n    at tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Object.gotValue (/app/node_modules/bluebird/js/release/reduce.js:155:18)\n    at Object.gotAccum (/app/node_modules/bluebird/js/release/reduce.js:144:25)\n    at Object.tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Promise._settlePromiseFromHandler (/app/node_modules/bluebird/js/release/promise.js:512:31)\n    at Promise._settlePromise (/app/node_modules/bluebird/js/release/promise.js:569:18)\n    at Promise._settlePromiseCtx (/app/node_modules/bluebird/js/release/promise.js:606:10)\n    at _drainQueueStep (/app/node_modules/bluebird/js/release/async.js:142:12)\n    at _drainQueue (/app/node_modules/bluebird/js/release/async.js:131:9)","levelPath":"fatal/startup","msg":"Message not supplied","time":"2018-09-13T09:16:46.326Z","v":0}
2018-09-13T09:16:46.689781+00:00 app[web.1]: {"name":"restbase","hostname":"1376627b-90bb-4581-b8a5-0d7933cf2e66","pid":126,"level":60,"err":{"message":"Cannot find module 'restbase-mod-table-sqlite'","name":"Error","stack":"Error: Cannot find module 'restbase-mod-table-sqlite'\n    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)\n    at Function.Module._load (internal/modules/cjs/loader.js:507:25)\n    at Module.require (internal/modules/cjs/loader.js:637:17)\n    at require (internal/modules/cjs/helpers.js:20:18)\n    at module.exports (/app/sys/table.js:17:12)\n    at Router._loadModule (/app/node_modules/hyperswitch/lib/router.js:229:26)\n    at P.each (/app/node_modules/hyperswitch/lib/router.js:255:25)\n    at tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Object.gotValue (/app/node_modules/bluebird/js/release/reduce.js:155:18)\n    at Object.gotAccum (/app/node_modules/bluebird/js/release/reduce.js:144:25)\n    at Object.tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Promise._settlePromiseFromHandler (/app/node_modules/bluebird/js/release/promise.js:512:31)\n    at Promise._settlePromise (/app/node_modules/bluebird/js/release/promise.js:569:18)\n    at Promise._settlePromiseCtx (/app/node_modules/bluebird/js/release/promise.js:606:10)\n    at _drainQueueStep (/app/node_modules/bluebird/js/release/async.js:142:12)\n    at _drainQueue (/app/node_modules/bluebird/js/release/async.js:131:9)","code":"MODULE_NOT_FOUND"},"stack":"Error: Cannot find module 'restbase-mod-table-sqlite'\n    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)\n    at Function.Module._load (internal/modules/cjs/loader.js:507:25)\n    at Module.require (internal/modules/cjs/loader.js:637:17)\n    at require (internal/modules/cjs/helpers.js:20:18)\n    at module.exports (/app/sys/table.js:17:12)\n    at Router._loadModule (/app/node_modules/hyperswitch/lib/router.js:229:26)\n    at P.each (/app/node_modules/hyperswitch/lib/router.js:255:25)\n    at tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Object.gotValue (/app/node_modules/bluebird/js/release/reduce.js:155:18)\n    at Object.gotAccum (/app/node_modules/bluebird/js/release/reduce.js:144:25)\n    at Object.tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Promise._settlePromiseFromHandler (/app/node_modules/bluebird/js/release/promise.js:512:31)\n    at Promise._settlePromise (/app/node_modules/bluebird/js/release/promise.js:569:18)\n    at Promise._settlePromiseCtx (/app/node_modules/bluebird/js/release/promise.js:606:10)\n    at _drainQueueStep (/app/node_modules/bluebird/js/release/async.js:142:12)\n    at _drainQueue (/app/node_modules/bluebird/js/release/async.js:131:9)","levelPath":"fatal/startup","msg":"Message not supplied","time":"2018-09-13T09:16:46.683Z","v":0}
2018-09-13T09:16:46.721715+00:00 app[web.1]: {"name":"restbase","hostname":"1376627b-90bb-4581-b8a5-0d7933cf2e66","pid":21,"level":50,"message":"worker died, restarting","worker_pid":112,"exit_code":1,"levelPath":"error/service-runner/master","msg":"worker died, restarting","time":"2018-09-13T09:16:46.721Z","v":0}
2018-09-13T09:16:46.857030+00:00 app[web.1]: {"name":"restbase","hostname":"1376627b-90bb-4581-b8a5-0d7933cf2e66","pid":21,"level":50,"message":"worker died, restarting","worker_pid":101,"exit_code":1,"levelPath":"error/service-runner/master","msg":"worker died, restarting","time":"2018-09-13T09:16:46.856Z","v":0}
2018-09-13T09:16:47.170934+00:00 app[web.1]: {"name":"restbase","hostname":"1376627b-90bb-4581-b8a5-0d7933cf2e66","pid":145,"level":60,"err":{"message":"Cannot find module 'restbase-mod-table-sqlite'","name":"Error","stack":"Error: Cannot find module 'restbase-mod-table-sqlite'\n    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)\n    at Function.Module._load (internal/modules/cjs/loader.js:507:25)\n    at Module.require (internal/modules/cjs/loader.js:637:17)\n    at require (internal/modules/cjs/helpers.js:20:18)\n    at module.exports (/app/sys/table.js:17:12)\n    at Router._loadModule (/app/node_modules/hyperswitch/lib/router.js:229:26)\n    at P.each (/app/node_modules/hyperswitch/lib/router.js:255:25)\n    at tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Object.gotValue (/app/node_modules/bluebird/js/release/reduce.js:155:18)\n    at Object.gotAccum (/app/node_modules/bluebird/js/release/reduce.js:144:25)\n    at Object.tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Promise._settlePromiseFromHandler (/app/node_modules/bluebird/js/release/promise.js:512:31)\n    at Promise._settlePromise (/app/node_modules/bluebird/js/release/promise.js:569:18)\n    at Promise._settlePromiseCtx (/app/node_modules/bluebird/js/release/promise.js:606:10)\n    at _drainQueueStep (/app/node_modules/bluebird/js/release/async.js:142:12)\n    at _drainQueue (/app/node_modules/bluebird/js/release/async.js:131:9)","code":"MODULE_NOT_FOUND"},"stack":"Error: Cannot find module 'restbase-mod-table-sqlite'\n    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)\n    at Function.Module._load (internal/modules/cjs/loader.js:507:25)\n    at Module.require (internal/modules/cjs/loader.js:637:17)\n    at require (internal/modules/cjs/helpers.js:20:18)\n    at module.exports (/app/sys/table.js:17:12)\n    at Router._loadModule (/app/node_modules/hyperswitch/lib/router.js:229:26)\n    at P.each (/app/node_modules/hyperswitch/lib/router.js:255:25)\n    at tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Object.gotValue (/app/node_modules/bluebird/js/release/reduce.js:155:18)\n    at Object.gotAccum (/app/node_modules/bluebird/js/release/reduce.js:144:25)\n    at Object.tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Promise._settlePromiseFromHandler (/app/node_modules/bluebird/js/release/promise.js:512:31)\n    at Promise._settlePromise (/app/node_modules/bluebird/js/release/promise.js:569:18)\n    at Promise._settlePromiseCtx (/app/node_modules/bluebird/js/release/promise.js:606:10)\n    at _drainQueueStep (/app/node_modules/bluebird/js/release/async.js:142:12)\n    at _drainQueue (/app/node_modules/bluebird/js/release/async.js:131:9)","levelPath":"fatal/startup","msg":"Message not supplied","time":"2018-09-13T09:16:47.143Z","v":0}
2018-09-13T09:16:48.393741+00:00 app[web.1]: {"name":"restbase","hostname":"1376627b-90bb-4581-b8a5-0d7933cf2e66","pid":21,"level":50,"message":"worker died, restarting","worker_pid":119,"exit_code":1,"levelPath":"error/service-runner/master","msg":"worker died, restarting","time":"2018-09-13T09:16:48.393Z","v":0}
2018-09-13T09:16:48.742094+00:00 app[web.1]: {"name":"restbase","hostname":"1376627b-90bb-4581-b8a5-0d7933cf2e66","pid":21,"level":50,"message":"worker died, restarting","worker_pid":126,"exit_code":1,"levelPath":"error/service-runner/master","msg":"worker died, restarting","time":"2018-09-13T09:16:48.741Z","v":0}
2018-09-13T09:16:49.185602+00:00 app[web.1]: {"name":"restbase","hostname":"1376627b-90bb-4581-b8a5-0d7933cf2e66","pid":21,"level":50,"message":"worker died, restarting","worker_pid":145,"exit_code":1,"levelPath":"error/service-runner/master","msg":"worker died, restarting","time":"2018-09-13T09:16:49.185Z","v":0}
2018-09-13T09:16:53.196479+00:00 app[web.1]: {"name":"restbase","hostname":"1376627b-90bb-4581-b8a5-0d7933cf2e66","pid":164,"level":60,"err":{"message":"Cannot find module 'restbase-mod-table-sqlite'","name":"Error","stack":"Error: Cannot find module 'restbase-mod-table-sqlite'\n    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)\n    at Function.Module._load (internal/modules/cjs/loader.js:507:25)\n    at Module.require (internal/modules/cjs/loader.js:637:17)\n    at require (internal/modules/cjs/helpers.js:20:18)\n    at module.exports (/app/sys/table.js:17:12)\n    at Router._loadModule (/app/node_modules/hyperswitch/lib/router.js:229:26)\n    at P.each (/app/node_modules/hyperswitch/lib/router.js:255:25)\n    at tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Object.gotValue (/app/node_modules/bluebird/js/release/reduce.js:155:18)\n    at Object.gotAccum (/app/node_modules/bluebird/js/release/reduce.js:144:25)\n    at Object.tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Promise._settlePromiseFromHandler (/app/node_modules/bluebird/js/release/promise.js:512:31)\n    at Promise._settlePromise (/app/node_modules/bluebird/js/release/promise.js:569:18)\n    at Promise._settlePromiseCtx (/app/node_modules/bluebird/js/release/promise.js:606:10)\n    at _drainQueueStep (/app/node_modules/bluebird/js/release/async.js:142:12)\n    at _drainQueue (/app/node_modules/bluebird/js/release/async.js:131:9)","code":"MODULE_NOT_FOUND"},"stack":"Error: Cannot find module 'restbase-mod-table-sqlite'\n    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)\n    at Function.Module._load (internal/modules/cjs/loader.js:507:25)\n    at Module.require (internal/modules/cjs/loader.js:637:17)\n    at require (internal/modules/cjs/helpers.js:20:18)\n    at module.exports (/app/sys/table.js:17:12)\n    at Router._loadModule (/app/node_modules/hyperswitch/lib/router.js:229:26)\n    at P.each (/app/node_modules/hyperswitch/lib/router.js:255:25)\n    at tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Object.gotValue (/app/node_modules/bluebird/js/release/reduce.js:155:18)\n    at Object.gotAccum (/app/node_modules/bluebird/js/release/reduce.js:144:25)\n    at Object.tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Promise._settlePromiseFromHandler (/app/node_modules/bluebird/js/release/promise.js:512:31)\n    at Promise._settlePromise (/app/node_modules/bluebird/js/release/promise.js:569:18)\n    at Promise._settlePromiseCtx (/app/node_modules/bluebird/js/release/promise.js:606:10)\n    at _drainQueueStep (/app/node_modules/bluebird/js/release/async.js:142:12)\n    at _drainQueue (/app/node_modules/bluebird/js/release/async.js:131:9)","levelPath":"fatal/startup","msg":"Message not supplied","time":"2018-09-13T09:16:53.189Z","v":0}
2018-09-13T09:16:55.277739+00:00 app[web.1]: {"name":"restbase","hostname":"1376627b-90bb-4581-b8a5-0d7933cf2e66","pid":21,"level":50,"message":"worker died, restarting","worker_pid":164,"exit_code":1,"levelPath":"error/service-runner/master","msg":"worker died, restarting","time":"2018-09-13T09:16:55.277Z","v":0}
2018-09-13T09:16:56.154376+00:00 app[web.1]: {"name":"restbase","hostname":"1376627b-90bb-4581-b8a5-0d7933cf2e66","pid":171,"level":60,"err":{"message":"Cannot find module 'restbase-mod-table-sqlite'","name":"Error","stack":"Error: Cannot find module 'restbase-mod-table-sqlite'\n    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)\n    at Function.Module._load (internal/modules/cjs/loader.js:507:25)\n    at Module.require (internal/modules/cjs/loader.js:637:17)\n    at require (internal/modules/cjs/helpers.js:20:18)\n    at module.exports (/app/sys/table.js:17:12)\n    at Router._loadModule (/app/node_modules/hyperswitch/lib/router.js:229:26)\n    at P.each (/app/node_modules/hyperswitch/lib/router.js:255:25)\n    at tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Object.gotValue (/app/node_modules/bluebird/js/release/reduce.js:155:18)\n    at Object.gotAccum (/app/node_modules/bluebird/js/release/reduce.js:144:25)\n    at Object.tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Promise._settlePromiseFromHandler (/app/node_modules/bluebird/js/release/promise.js:512:31)\n    at Promise._settlePromise (/app/node_modules/bluebird/js/release/promise.js:569:18)\n    at Promise._settlePromiseCtx (/app/node_modules/bluebird/js/release/promise.js:606:10)\n    at _drainQueueStep (/app/node_modules/bluebird/js/release/async.js:142:12)\n    at _drainQueue (/app/node_modules/bluebird/js/release/async.js:131:9)","code":"MODULE_NOT_FOUND"},"stack":"Error: Cannot find module 'restbase-mod-table-sqlite'\n    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)\n    at Function.Module._load (internal/modules/cjs/loader.js:507:25)\n    at Module.require (internal/modules/cjs/loader.js:637:17)\n    at require (internal/modules/cjs/helpers.js:20:18)\n    at module.exports (/app/sys/table.js:17:12)\n    at Router._loadModule (/app/node_modules/hyperswitch/lib/router.js:229:26)\n    at P.each (/app/node_modules/hyperswitch/lib/router.js:255:25)\n    at tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Object.gotValue (/app/node_modules/bluebird/js/release/reduce.js:155:18)\n    at Object.gotAccum (/app/node_modules/bluebird/js/release/reduce.js:144:25)\n    at Object.tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Promise._settlePromiseFromHandler (/app/node_modules/bluebird/js/release/promise.js:512:31)\n    at Promise._settlePromise (/app/node_modules/bluebird/js/release/promise.js:569:18)\n    at Promise._settlePromiseCtx (/app/node_modules/bluebird/js/release/promise.js:606:10)\n    at _drainQueueStep (/app/node_modules/bluebird/js/release/async.js:142:12)\n    at _drainQueue (/app/node_modules/bluebird/js/release/async.js:131:9)","levelPath":"fatal/startup","msg":"Message not supplied","time":"2018-09-13T09:16:56.087Z","v":0}
2018-09-13T09:16:58.229857+00:00 app[web.1]: {"name":"restbase","hostname":"1376627b-90bb-4581-b8a5-0d7933cf2e66","pid":21,"level":50,"message":"worker died, restarting","worker_pid":171,"exit_code":1,"levelPath":"error/service-runner/master","msg":"worker died, restarting","time":"2018-09-13T09:16:58.229Z","v":0}
2018-09-13T09:16:58.233185+00:00 app[web.1]: {"name":"restbase","hostname":"1376627b-90bb-4581-b8a5-0d7933cf2e66","pid":178,"level":60,"err":{"message":"Cannot find module 'restbase-mod-table-sqlite'","name":"Error","stack":"Error: Cannot find module 'restbase-mod-table-sqlite'\n    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)\n    at Function.Module._load (internal/modules/cjs/loader.js:507:25)\n    at Module.require (internal/modules/cjs/loader.js:637:17)\n    at require (internal/modules/cjs/helpers.js:20:18)\n    at module.exports (/app/sys/table.js:17:12)\n    at Router._loadModule (/app/node_modules/hyperswitch/lib/router.js:229:26)\n    at P.each (/app/node_modules/hyperswitch/lib/router.js:255:25)\n    at tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Object.gotValue (/app/node_modules/bluebird/js/release/reduce.js:155:18)\n    at Object.gotAccum (/app/node_modules/bluebird/js/release/reduce.js:144:25)\n    at Object.tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Promise._settlePromiseFromHandler (/app/node_modules/bluebird/js/release/promise.js:512:31)\n    at Promise._settlePromise (/app/node_modules/bluebird/js/release/promise.js:569:18)\n    at Promise._settlePromiseCtx (/app/node_modules/bluebird/js/release/promise.js:606:10)\n    at _drainQueueStep (/app/node_modules/bluebird/js/release/async.js:142:12)\n    at _drainQueue (/app/node_modules/bluebird/js/release/async.js:131:9)","code":"MODULE_NOT_FOUND"},"stack":"Error: Cannot find module 'restbase-mod-table-sqlite'\n    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)\n    at Function.Module._load (internal/modules/cjs/loader.js:507:25)\n    at Module.require (internal/modules/cjs/loader.js:637:17)\n    at require (internal/modules/cjs/helpers.js:20:18)\n    at module.exports (/app/sys/table.js:17:12)\n    at Router._loadModule (/app/node_modules/hyperswitch/lib/router.js:229:26)\n    at P.each (/app/node_modules/hyperswitch/lib/router.js:255:25)\n    at tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Object.gotValue (/app/node_modules/bluebird/js/release/reduce.js:155:18)\n    at Object.gotAccum (/app/node_modules/bluebird/js/release/reduce.js:144:25)\n    at Object.tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Promise._settlePromiseFromHandler (/app/node_modules/bluebird/js/release/promise.js:512:31)\n    at Promise._settlePromise (/app/node_modules/bluebird/js/release/promise.js:569:18)\n    at Promise._settlePromiseCtx (/app/node_modules/bluebird/js/release/promise.js:606:10)\n    at _drainQueueStep (/app/node_modules/bluebird/js/release/async.js:142:12)\n    at _drainQueue (/app/node_modules/bluebird/js/release/async.js:131:9)","levelPath":"fatal/startup","msg":"Message not supplied","time":"2018-09-13T09:16:58.212Z","v":0}
2018-09-13T09:16:58.715099+00:00 app[web.1]: {"name":"restbase","hostname":"1376627b-90bb-4581-b8a5-0d7933cf2e66","pid":185,"level":60,"err":{"message":"Cannot find module 'restbase-mod-table-sqlite'","name":"Error","stack":"Error: Cannot find module 'restbase-mod-table-sqlite'\n    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)\n    at Function.Module._load (internal/modules/cjs/loader.js:507:25)\n    at Module.require (internal/modules/cjs/loader.js:637:17)\n    at require (internal/modules/cjs/helpers.js:20:18)\n    at module.exports (/app/sys/table.js:17:12)\n    at Router._loadModule (/app/node_modules/hyperswitch/lib/router.js:229:26)\n    at P.each (/app/node_modules/hyperswitch/lib/router.js:255:25)\n    at tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Object.gotValue (/app/node_modules/bluebird/js/release/reduce.js:155:18)\n    at Object.gotAccum (/app/node_modules/bluebird/js/release/reduce.js:144:25)\n    at Object.tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Promise._settlePromiseFromHandler (/app/node_modules/bluebird/js/release/promise.js:512:31)\n    at Promise._settlePromise (/app/node_modules/bluebird/js/release/promise.js:569:18)\n    at Promise._settlePromiseCtx (/app/node_modules/bluebird/js/release/promise.js:606:10)\n    at _drainQueueStep (/app/node_modules/bluebird/js/release/async.js:142:12)\n    at _drainQueue (/app/node_modules/bluebird/js/release/async.js:131:9)","code":"MODULE_NOT_FOUND"},"stack":"Error: Cannot find module 'restbase-mod-table-sqlite'\n    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)\n    at Function.Module._load (internal/modules/cjs/loader.js:507:25)\n    at Module.require (internal/modules/cjs/loader.js:637:17)\n    at require (internal/modules/cjs/helpers.js:20:18)\n    at module.exports (/app/sys/table.js:17:12)\n    at Router._loadModule (/app/node_modules/hyperswitch/lib/router.js:229:26)\n    at P.each (/app/node_modules/hyperswitch/lib/router.js:255:25)\n    at tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Object.gotValue (/app/node_modules/bluebird/js/release/reduce.js:155:18)\n    at Object.gotAccum (/app/node_modules/bluebird/js/release/reduce.js:144:25)\n    at Object.tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Promise._settlePromiseFromHandler (/app/node_modules/bluebird/js/release/promise.js:512:31)\n    at Promise._settlePromise (/app/node_modules/bluebird/js/release/promise.js:569:18)\n    at Promise._settlePromiseCtx (/app/node_modules/bluebird/js/release/promise.js:606:10)\n    at _drainQueueStep (/app/node_modules/bluebird/js/release/async.js:142:12)\n    at _drainQueue (/app/node_modules/bluebird/js/release/async.js:131:9)","levelPath":"fatal/startup","msg":"Message not supplied","time":"2018-09-13T09:16:58.697Z","v":0}
2018-09-13T09:17:00.373880+00:00 app[web.1]: {"name":"restbase","hostname":"1376627b-90bb-4581-b8a5-0d7933cf2e66","pid":21,"level":50,"message":"worker died, restarting","worker_pid":178,"exit_code":1,"levelPath":"error/service-runner/master","msg":"worker died, restarting","time":"2018-09-13T09:17:00.373Z","v":0}
2018-09-13T09:17:00.767302+00:00 app[web.1]: {"name":"restbase","hostname":"1376627b-90bb-4581-b8a5-0d7933cf2e66","pid":21,"level":50,"message":"worker died, restarting","worker_pid":185,"exit_code":1,"levelPath":"error/service-runner/master","msg":"worker died, restarting","time":"2018-09-13T09:17:00.767Z","v":0}
2018-09-13T09:17:02.117970+00:00 app[web.1]: {"name":"restbase","hostname":"1376627b-90bb-4581-b8a5-0d7933cf2e66","pid":198,"level":60,"err":{"message":"Cannot find module 'restbase-mod-table-sqlite'","name":"Error","stack":"Error: Cannot find module 'restbase-mod-table-sqlite'\n    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)\n    at Function.Module._load (internal/modules/cjs/loader.js:507:25)\n    at Module.require (internal/modules/cjs/loader.js:637:17)\n    at require (internal/modules/cjs/helpers.js:20:18)\n    at module.exports (/app/sys/table.js:17:12)\n    at Router._loadModule (/app/node_modules/hyperswitch/lib/router.js:229:26)\n    at P.each (/app/node_modules/hyperswitch/lib/router.js:255:25)\n    at tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Object.gotValue (/app/node_modules/bluebird/js/release/reduce.js:155:18)\n    at Object.gotAccum (/app/node_modules/bluebird/js/release/reduce.js:144:25)\n    at Object.tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Promise._settlePromiseFromHandler (/app/node_modules/bluebird/js/release/promise.js:512:31)\n    at Promise._settlePromise (/app/node_modules/bluebird/js/release/promise.js:569:18)\n    at Promise._settlePromiseCtx (/app/node_modules/bluebird/js/release/promise.js:606:10)\n    at _drainQueueStep (/app/node_modules/bluebird/js/release/async.js:142:12)\n    at _drainQueue (/app/node_modules/bluebird/js/release/async.js:131:9)","code":"MODULE_NOT_FOUND"},"stack":"Error: Cannot find module 'restbase-mod-table-sqlite'\n    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)\n    at Function.Module._load (internal/modules/cjs/loader.js:507:25)\n    at Module.require (internal/modules/cjs/loader.js:637:17)\n    at require (internal/modules/cjs/helpers.js:20:18)\n    at module.exports (/app/sys/table.js:17:12)\n    at Router._loadModule (/app/node_modules/hyperswitch/lib/router.js:229:26)\n    at P.each (/app/node_modules/hyperswitch/lib/router.js:255:25)\n    at tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Object.gotValue (/app/node_modules/bluebird/js/release/reduce.js:155:18)\n    at Object.gotAccum (/app/node_modules/bluebird/js/release/reduce.js:144:25)\n    at Object.tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Promise._settlePromiseFromHandler (/app/node_modules/bluebird/js/release/promise.js:512:31)\n    at Promise._settlePromise (/app/node_modules/bluebird/js/release/promise.js:569:18)\n    at Promise._settlePromiseCtx (/app/node_modules/bluebird/js/release/promise.js:606:10)\n    at _drainQueueStep (/app/node_modules/bluebird/js/release/async.js:142:12)\n    at _drainQueue (/app/node_modules/bluebird/js/release/async.js:131:9)","levelPath":"fatal/startup","msg":"Message not supplied","time":"2018-09-13T09:17:02.032Z","v":0}
2018-09-13T09:17:04.034636+00:00 app[web.1]: {"name":"restbase","hostname":"1376627b-90bb-4581-b8a5-0d7933cf2e66","pid":206,"level":60,"err":{"message":"Cannot find module 'restbase-mod-table-sqlite'","name":"Error","stack":"Error: Cannot find module 'restbase-mod-table-sqlite'\n    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)\n    at Function.Module._load (internal/modules/cjs/loader.js:507:25)\n    at Module.require (internal/modules/cjs/loader.js:637:17)\n    at require (internal/modules/cjs/helpers.js:20:18)\n    at module.exports (/app/sys/table.js:17:12)\n    at Router._loadModule (/app/node_modules/hyperswitch/lib/router.js:229:26)\n    at P.each (/app/node_modules/hyperswitch/lib/router.js:255:25)\n    at tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Object.gotValue (/app/node_modules/bluebird/js/release/reduce.js:155:18)\n    at Object.gotAccum (/app/node_modules/bluebird/js/release/reduce.js:144:25)\n    at Object.tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Promise._settlePromiseFromHandler (/app/node_modules/bluebird/js/release/promise.js:512:31)\n    at Promise._settlePromise (/app/node_modules/bluebird/js/release/promise.js:569:18)\n    at Promise._settlePromiseCtx (/app/node_modules/bluebird/js/release/promise.js:606:10)\n    at _drainQueueStep (/app/node_modules/bluebird/js/release/async.js:142:12)\n    at _drainQueue (/app/node_modules/bluebird/js/release/async.js:131:9)","code":"MODULE_NOT_FOUND"},"stack":"Error: Cannot find module 'restbase-mod-table-sqlite'\n    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)\n    at Function.Module._load (internal/modules/cjs/loader.js:507:25)\n    at Module.require (internal/modules/cjs/loader.js:637:17)\n    at require (internal/modules/cjs/helpers.js:20:18)\n    at module.exports (/app/sys/table.js:17:12)\n    at Router._loadModule (/app/node_modules/hyperswitch/lib/router.js:229:26)\n    at P.each (/app/node_modules/hyperswitch/lib/router.js:255:25)\n    at tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Object.gotValue (/app/node_modules/bluebird/js/release/reduce.js:155:18)\n    at Object.gotAccum (/app/node_modules/bluebird/js/release/reduce.js:144:25)\n    at Object.tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Promise._settlePromiseFromHandler (/app/node_modules/bluebird/js/release/promise.js:512:31)\n    at Promise._settlePromise (/app/node_modules/bluebird/js/release/promise.js:569:18)\n    at Promise._settlePromiseCtx (/app/node_modules/bluebird/js/release/promise.js:606:10)\n    at _drainQueueStep (/app/node_modules/bluebird/js/release/async.js:142:12)\n    at _drainQueue (/app/node_modules/bluebird/js/release/async.js:131:9)","levelPath":"fatal/startup","msg":"Message not supplied","time":"2018-09-13T09:17:04.005Z","v":0}
2018-09-13T09:17:04.170505+00:00 app[web.1]: {"name":"restbase","hostname":"1376627b-90bb-4581-b8a5-0d7933cf2e66","pid":21,"level":50,"message":"worker died, restarting","worker_pid":198,"exit_code":1,"levelPath":"error/service-runner/master","msg":"worker died, restarting","time":"2018-09-13T09:17:04.170Z","v":0}
2018-09-13T09:17:06.129779+00:00 app[web.1]: {"name":"restbase","hostname":"1376627b-90bb-4581-b8a5-0d7933cf2e66","pid":21,"level":50,"message":"worker died, restarting","worker_pid":206,"exit_code":1,"levelPath":"error/service-runner/master","msg":"worker died, restarting","time":"2018-09-13T09:17:06.129Z","v":0}
2018-09-13T09:17:06.253700+00:00 app[web.1]: {"name":"restbase","hostname":"1376627b-90bb-4581-b8a5-0d7933cf2e66","pid":192,"level":60,"err":{"message":"Cannot find module 'restbase-mod-table-sqlite'","name":"Error","stack":"Error: Cannot find module 'restbase-mod-table-sqlite'\n    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)\n    at Function.Module._load (internal/modules/cjs/loader.js:507:25)\n    at Module.require (internal/modules/cjs/loader.js:637:17)\n    at require (internal/modules/cjs/helpers.js:20:18)\n    at module.exports (/app/sys/table.js:17:12)\n    at Router._loadModule (/app/node_modules/hyperswitch/lib/router.js:229:26)\n    at P.each (/app/node_modules/hyperswitch/lib/router.js:255:25)\n    at tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Object.gotValue (/app/node_modules/bluebird/js/release/reduce.js:155:18)\n    at Object.gotAccum (/app/node_modules/bluebird/js/release/reduce.js:144:25)\n    at Object.tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Promise._settlePromiseFromHandler (/app/node_modules/bluebird/js/release/promise.js:512:31)\n    at Promise._settlePromise (/app/node_modules/bluebird/js/release/promise.js:569:18)\n    at Promise._settlePromiseCtx (/app/node_modules/bluebird/js/release/promise.js:606:10)\n    at _drainQueueStep (/app/node_modules/bluebird/js/release/async.js:142:12)\n    at _drainQueue (/app/node_modules/bluebird/js/release/async.js:131:9)","code":"MODULE_NOT_FOUND"},"stack":"Error: Cannot find module 'restbase-mod-table-sqlite'\n    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)\n    at Function.Module._load (internal/modules/cjs/loader.js:507:25)\n    at Module.require (internal/modules/cjs/loader.js:637:17)\n    at require (internal/modules/cjs/helpers.js:20:18)\n    at module.exports (/app/sys/table.js:17:12)\n    at Router._loadModule (/app/node_modules/hyperswitch/lib/router.js:229:26)\n    at P.each (/app/node_modules/hyperswitch/lib/router.js:255:25)\n    at tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Object.gotValue (/app/node_modules/bluebird/js/release/reduce.js:155:18)\n    at Object.gotAccum (/app/node_modules/bluebird/js/release/reduce.js:144:25)\n    at Object.tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Promise._settlePromiseFromHandler (/app/node_modules/bluebird/js/release/promise.js:512:31)\n    at Promise._settlePromise (/app/node_modules/bluebird/js/release/promise.js:569:18)\n    at Promise._settlePromiseCtx (/app/node_modules/bluebird/js/release/promise.js:606:10)\n    at _drainQueueStep (/app/node_modules/bluebird/js/release/async.js:142:12)\n    at _drainQueue (/app/node_modules/bluebird/js/release/async.js:131:9)","levelPath":"fatal/startup","msg":"Message not supplied","time":"2018-09-13T09:17:06.203Z","v":0}
2018-09-13T09:17:06.368434+00:00 app[web.1]: {"name":"restbase","hostname":"1376627b-90bb-4581-b8a5-0d7933cf2e66","pid":232,"level":60,"err":{"message":"Cannot find module 'restbase-mod-table-sqlite'","name":"Error","stack":"Error: Cannot find module 'restbase-mod-table-sqlite'\n    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)\n    at Function.Module._load (internal/modules/cjs/loader.js:507:25)\n    at Module.require (internal/modules/cjs/loader.js:637:17)\n    at require (internal/modules/cjs/helpers.js:20:18)\n    at module.exports (/app/sys/table.js:17:12)\n    at Router._loadModule (/app/node_modules/hyperswitch/lib/router.js:229:26)\n    at P.each (/app/node_modules/hyperswitch/lib/router.js:255:25)\n    at tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Object.gotValue (/app/node_modules/bluebird/js/release/reduce.js:155:18)\n    at Object.gotAccum (/app/node_modules/bluebird/js/release/reduce.js:144:25)\n    at Object.tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Promise._settlePromiseFromHandler (/app/node_modules/bluebird/js/release/promise.js:512:31)\n    at Promise._settlePromise (/app/node_modules/bluebird/js/release/promise.js:569:18)\n    at Promise._settlePromiseCtx (/app/node_modules/bluebird/js/release/promise.js:606:10)\n    at _drainQueueStep (/app/node_modules/bluebird/js/release/async.js:142:12)\n    at _drainQueue (/app/node_modules/bluebird/js/release/async.js:131:9)","code":"MODULE_NOT_FOUND"},"stack":"Error: Cannot find module 'restbase-mod-table-sqlite'\n    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)\n    at Function.Module._load (internal/modules/cjs/loader.js:507:25)\n    at Module.require (internal/modules/cjs/loader.js:637:17)\n    at require (internal/modules/cjs/helpers.js:20:18)\n    at module.exports (/app/sys/table.js:17:12)\n    at Router._loadModule (/app/node_modules/hyperswitch/lib/router.js:229:26)\n    at P.each (/app/node_modules/hyperswitch/lib/router.js:255:25)\n    at tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Object.gotValue (/app/node_modules/bluebird/js/release/reduce.js:155:18)\n    at Object.gotAccum (/app/node_modules/bluebird/js/release/reduce.js:144:25)\n    at Object.tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Promise._settlePromiseFromHandler (/app/node_modules/bluebird/js/release/promise.js:512:31)\n    at Promise._settlePromise (/app/node_modules/bluebird/js/release/promise.js:569:18)\n    at Promise._settlePromiseCtx (/app/node_modules/bluebird/js/release/promise.js:606:10)\n    at _drainQueueStep (/app/node_modules/bluebird/js/release/async.js:142:12)\n    at _drainQueue (/app/node_modules/bluebird/js/release/async.js:131:9)","levelPath":"fatal/startup","msg":"Message not supplied","time":"2018-09-13T09:17:06.316Z","v":0}
2018-09-13T09:17:06.383170+00:00 app[web.1]: {"name":"restbase","hostname":"1376627b-90bb-4581-b8a5-0d7933cf2e66","pid":21,"level":40,"levelPath":"warn/service-runner","msg":"startup finished","time":"2018-09-13T09:17:06.383Z","v":0}
2018-09-13T09:17:08.289924+00:00 app[web.1]: {"name":"restbase","hostname":"1376627b-90bb-4581-b8a5-0d7933cf2e66","pid":21,"level":50,"message":"worker died, restarting","worker_pid":192,"exit_code":1,"levelPath":"error/service-runner/master","msg":"worker died, restarting","time":"2018-09-13T09:17:08.289Z","v":0}
2018-09-13T09:17:08.554298+00:00 app[web.1]: {"name":"restbase","hostname":"1376627b-90bb-4581-b8a5-0d7933cf2e66","pid":21,"level":50,"message":"worker died, restarting","worker_pid":232,"exit_code":1,"levelPath":"error/service-runner/master","msg":"worker died, restarting","time":"2018-09-13T09:17:08.554Z","v":0}
2018-09-13T09:17:08.918423+00:00 app[web.1]: {"name":"restbase","hostname":"1376627b-90bb-4581-b8a5-0d7933cf2e66","pid":221,"level":60,"err":{"message":"Cannot find module 'restbase-mod-table-sqlite'","name":"Error","stack":"Error: Cannot find module 'restbase-mod-table-sqlite'\n    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)\n    at Function.Module._load (internal/modules/cjs/loader.js:507:25)\n    at Module.require (internal/modules/cjs/loader.js:637:17)\n    at require (internal/modules/cjs/helpers.js:20:18)\n    at module.exports (/app/sys/table.js:17:12)\n    at Router._loadModule (/app/node_modules/hyperswitch/lib/router.js:229:26)\n    at P.each (/app/node_modules/hyperswitch/lib/router.js:255:25)\n    at tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Object.gotValue (/app/node_modules/bluebird/js/release/reduce.js:155:18)\n    at Object.gotAccum (/app/node_modules/bluebird/js/release/reduce.js:144:25)\n    at Object.tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Promise._settlePromiseFromHandler (/app/node_modules/bluebird/js/release/promise.js:512:31)\n    at Promise._settlePromise (/app/node_modules/bluebird/js/release/promise.js:569:18)\n    at Promise._settlePromiseCtx (/app/node_modules/bluebird/js/release/promise.js:606:10)\n    at _drainQueueStep (/app/node_modules/bluebird/js/release/async.js:142:12)\n    at _drainQueue (/app/node_modules/bluebird/js/release/async.js:131:9)","code":"MODULE_NOT_FOUND"},"stack":"Error: Cannot find module 'restbase-mod-table-sqlite'\n    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)\n    at Function.Module._load (internal/modules/cjs/loader.js:507:25)\n    at Module.require (internal/modules/cjs/loader.js:637:17)\n    at require (internal/modules/cjs/helpers.js:20:18)\n    at module.exports (/app/sys/table.js:17:12)\n    at Router._loadModule (/app/node_modules/hyperswitch/lib/router.js:229:26)\n    at P.each (/app/node_modules/hyperswitch/lib/router.js:255:25)\n    at tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Object.gotValue (/app/node_modules/bluebird/js/release/reduce.js:155:18)\n    at Object.gotAccum (/app/node_modules/bluebird/js/release/reduce.js:144:25)\n    at Object.tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Promise._settlePromiseFromHandler (/app/node_modules/bluebird/js/release/promise.js:512:31)\n    at Promise._settlePromise (/app/node_modules/bluebird/js/release/promise.js:569:18)\n    at Promise._settlePromiseCtx (/app/node_modules/bluebird/js/release/promise.js:606:10)\n    at _drainQueueStep (/app/node_modules/bluebird/js/release/async.js:142:12)\n    at _drainQueue (/app/node_modules/bluebird/js/release/async.js:131:9)","levelPath":"fatal/startup","msg":"Message not supplied","time":"2018-09-13T09:17:08.896Z","v":0}
2018-09-13T09:17:10.146018+00:00 app[web.1]: {"name":"restbase","hostname":"1376627b-90bb-4581-b8a5-0d7933cf2e66","pid":21,"level":50,"message":"worker stopped sending heartbeats, killing.","worker_pid":247,"levelPath":"error/service-runner/master","msg":"worker stopped sending heartbeats, killing.","time":"2018-09-13T09:17:10.145Z","v":0}
2018-09-13T09:17:10.162433+00:00 app[web.1]: {"name":"restbase","hostname":"1376627b-90bb-4581-b8a5-0d7933cf2e66","pid":21,"level":50,"message":"worker stopped sending heartbeats, killing.","worker_pid":254,"levelPath":"error/service-runner/master","msg":"worker stopped sending heartbeats, killing.","time":"2018-09-13T09:17:10.162Z","v":0}
2018-09-13T09:17:10.185509+00:00 app[web.1]: {"name":"restbase","hostname":"1376627b-90bb-4581-b8a5-0d7933cf2e66","pid":21,"level":50,"message":"worker stopped sending heartbeats, killing.","worker_pid":261,"levelPath":"error/service-runner/master","msg":"worker stopped sending heartbeats, killing.","time":"2018-09-13T09:17:10.185Z","v":0}
2018-09-13T09:17:10.500169+00:00 app[web.1]: {"name":"restbase","hostname":"1376627b-90bb-4581-b8a5-0d7933cf2e66","pid":21,"level":40,"message":"worker died during startup, continue startup","exit_code":null,"worker_pid":247,"levelPath":"warn/service-runner/master","msg":"worker died during startup, continue startup","time":"2018-09-13T09:17:10.499Z","v":0}
2018-09-13T09:17:10.701645+00:00 app[web.1]: {"name":"restbase","hostname":"1376627b-90bb-4581-b8a5-0d7933cf2e66","pid":21,"level":40,"message":"worker died during startup, continue startup","exit_code":null,"worker_pid":254,"levelPath":"warn/service-runner/master","msg":"worker died during startup, continue startup","time":"2018-09-13T09:17:10.701Z","v":0}
2018-09-13T09:17:10.792986+00:00 app[web.1]: {"name":"restbase","hostname":"1376627b-90bb-4581-b8a5-0d7933cf2e66","pid":21,"level":40,"message":"worker died during startup, continue startup","exit_code":null,"worker_pid":261,"levelPath":"warn/service-runner/master","msg":"worker died during startup, continue startup","time":"2018-09-13T09:17:10.792Z","v":0}
2018-09-13T09:17:10.957814+00:00 app[web.1]: {"name":"restbase","hostname":"1376627b-90bb-4581-b8a5-0d7933cf2e66","pid":21,"level":50,"message":"worker died, restarting","worker_pid":221,"exit_code":1,"levelPath":"error/service-runner/master","msg":"worker died, restarting","time":"2018-09-13T09:17:10.957Z","v":0}
2018-09-13T09:17:17.059034+00:00 app[web.1]: {"name":"restbase","hostname":"1376627b-90bb-4581-b8a5-0d7933cf2e66","pid":280,"level":60,"err":{"message":"Cannot find module 'restbase-mod-table-sqlite'","name":"Error","stack":"Error: Cannot find module 'restbase-mod-table-sqlite'\n    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)\n    at Function.Module._load (internal/modules/cjs/loader.js:507:25)\n    at Module.require (internal/modules/cjs/loader.js:637:17)\n    at require (internal/modules/cjs/helpers.js:20:18)\n    at module.exports (/app/sys/table.js:17:12)\n    at Router._loadModule (/app/node_modules/hyperswitch/lib/router.js:229:26)\n    at P.each (/app/node_modules/hyperswitch/lib/router.js:255:25)\n    at tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Object.gotValue (/app/node_modules/bluebird/js/release/reduce.js:155:18)\n    at Object.gotAccum (/app/node_modules/bluebird/js/release/reduce.js:144:25)\n    at Object.tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Promise._settlePromiseFromHandler (/app/node_modules/bluebird/js/release/promise.js:512:31)\n    at Promise._settlePromise (/app/node_modules/bluebird/js/release/promise.js:569:18)\n    at Promise._settlePromiseCtx (/app/node_modules/bluebird/js/release/promise.js:606:10)\n    at _drainQueueStep (/app/node_modules/bluebird/js/release/async.js:142:12)\n    at _drainQueue (/app/node_modules/bluebird/js/release/async.js:131:9)","code":"MODULE_NOT_FOUND"},"stack":"Error: Cannot find module 'restbase-mod-table-sqlite'\n    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)\n    at Function.Module._load (internal/modules/cjs/loader.js:507:25)\n    at Module.require (internal/modules/cjs/loader.js:637:17)\n    at require (internal/modules/cjs/helpers.js:20:18)\n    at module.exports (/app/sys/table.js:17:12)\n    at Router._loadModule (/app/node_modules/hyperswitch/lib/router.js:229:26)\n    at P.each (/app/node_modules/hyperswitch/lib/router.js:255:25)\n    at tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Object.gotValue (/app/node_modules/bluebird/js/release/reduce.js:155:18)\n    at Object.gotAccum (/app/node_modules/bluebird/js/release/reduce.js:144:25)\n    at Object.tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Promise._settlePromiseFromHandler (/app/node_modules/bluebird/js/release/promise.js:512:31)\n    at Promise._settlePromise (/app/node_modules/bluebird/js/release/promise.js:569:18)\n    at Promise._settlePromiseCtx (/app/node_modules/bluebird/js/release/promise.js:606:10)\n    at _drainQueueStep (/app/node_modules/bluebird/js/release/async.js:142:12)\n    at _drainQueue (/app/node_modules/bluebird/js/release/async.js:131:9)","levelPath":"fatal/startup","msg":"Message not supplied","time":"2018-09-13T09:17:17.044Z","v":0}
2018-09-13T09:17:19.245585+00:00 app[web.1]: {"name":"restbase","hostname":"1376627b-90bb-4581-b8a5-0d7933cf2e66","pid":21,"level":50,"message":"worker died, restarting","worker_pid":280,"exit_code":1,"levelPath":"error/service-runner/master","msg":"worker died, restarting","time":"2018-09-13T09:17:19.245Z","v":0}
2018-09-13T09:17:20.377479+00:00 app[web.1]: {"name":"restbase","hostname":"1376627b-90bb-4581-b8a5-0d7933cf2e66","pid":299,"level":60,"err":{"message":"Cannot find module 'restbase-mod-table-sqlite'","name":"Error","stack":"Error: Cannot find module 'restbase-mod-table-sqlite'\n    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)\n    at Function.Module._load (internal/modules/cjs/loader.js:507:25)\n    at Module.require (internal/modules/cjs/loader.js:637:17)\n    at require (internal/modules/cjs/helpers.js:20:18)\n    at module.exports (/app/sys/table.js:17:12)\n    at Router._loadModule (/app/node_modules/hyperswitch/lib/router.js:229:26)\n    at P.each (/app/node_modules/hyperswitch/lib/router.js:255:25)\n    at tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Object.gotValue (/app/node_modules/bluebird/js/release/reduce.js:155:18)\n    at Object.gotAccum (/app/node_modules/bluebird/js/release/reduce.js:144:25)\n    at Object.tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Promise._settlePromiseFromHandler (/app/node_modules/bluebird/js/release/promise.js:512:31)\n    at Promise._settlePromise (/app/node_modules/bluebird/js/release/promise.js:569:18)\n    at Promise._settlePromiseCtx (/app/node_modules/bluebird/js/release/promise.js:606:10)\n    at _drainQueueStep (/app/node_modules/bluebird/js/release/async.js:142:12)\n    at _drainQueue (/app/node_modules/bluebird/js/release/async.js:131:9)","code":"MODULE_NOT_FOUND"},"stack":"Error: Cannot find module 'restbase-mod-table-sqlite'\n    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)\n    at Function.Module._load (internal/modules/cjs/loader.js:507:25)\n    at Module.require (internal/modules/cjs/loader.js:637:17)\n    at require (internal/modules/cjs/helpers.js:20:18)\n    at module.exports (/app/sys/table.js:17:12)\n    at Router._loadModule (/app/node_modules/hyperswitch/lib/router.js:229:26)\n    at P.each (/app/node_modules/hyperswitch/lib/router.js:255:25)\n    at tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Object.gotValue (/app/node_modules/bluebird/js/release/reduce.js:155:18)\n    at Object.gotAccum (/app/node_modules/bluebird/js/release/reduce.js:144:25)\n    at Object.tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Promise._settlePromiseFromHandler (/app/node_modules/bluebird/js/release/promise.js:512:31)\n    at Promise._settlePromise (/app/node_modules/bluebird/js/release/promise.js:569:18)\n    at Promise._settlePromiseCtx (/app/node_modules/bluebird/js/release/promise.js:606:10)\n    at _drainQueueStep (/app/node_modules/bluebird/js/release/async.js:142:12)\n    at _drainQueue (/app/node_modules/bluebird/js/release/async.js:131:9)","levelPath":"fatal/startup","msg":"Message not supplied","time":"2018-09-13T09:17:20.367Z","v":0}
2018-09-13T09:17:21.226663+00:00 app[web.1]: {"name":"restbase","hostname":"1376627b-90bb-4581-b8a5-0d7933cf2e66","pid":312,"level":60,"err":{"message":"Cannot find module 'restbase-mod-table-sqlite'","name":"Error","stack":"Error: Cannot find module 'restbase-mod-table-sqlite'\n    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)\n    at Function.Module._load (internal/modules/cjs/loader.js:507:25)\n    at Module.require (internal/modules/cjs/loader.js:637:17)\n    at require (internal/modules/cjs/helpers.js:20:18)\n    at module.exports (/app/sys/table.js:17:12)\n    at Router._loadModule (/app/node_modules/hyperswitch/lib/router.js:229:26)\n    at P.each (/app/node_modules/hyperswitch/lib/router.js:255:25)\n    at tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Object.gotValue (/app/node_modules/bluebird/js/release/reduce.js:155:18)\n    at Object.gotAccum (/app/node_modules/bluebird/js/release/reduce.js:144:25)\n    at Object.tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Promise._settlePromiseFromHandler (/app/node_modules/bluebird/js/release/promise.js:512:31)\n    at Promise._settlePromise (/app/node_modules/bluebird/js/release/promise.js:569:18)\n    at Promise._settlePromiseCtx (/app/node_modules/bluebird/js/release/promise.js:606:10)\n    at _drainQueueStep (/app/node_modules/bluebird/js/release/async.js:142:12)\n    at _drainQueue (/app/node_modules/bluebird/js/release/async.js:131:9)","code":"MODULE_NOT_FOUND"},"stack":"Error: Cannot find module 'restbase-mod-table-sqlite'\n    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)\n    at Function.Module._load (internal/modules/cjs/loader.js:507:25)\n    at Module.require (internal/modules/cjs/loader.js:637:17)\n    at require (internal/modules/cjs/helpers.js:20:18)\n    at module.exports (/app/sys/table.js:17:12)\n    at Router._loadModule (/app/node_modules/hyperswitch/lib/router.js:229:26)\n    at P.each (/app/node_modules/hyperswitch/lib/router.js:255:25)\n    at tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Object.gotValue (/app/node_modules/bluebird/js/release/reduce.js:155:18)\n    at Object.gotAccum (/app/node_modules/bluebird/js/release/reduce.js:144:25)\n    at Object.tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Promise._settlePromiseFromHandler (/app/node_modules/bluebird/js/release/promise.js:512:31)\n    at Promise._settlePromise (/app/node_modules/bluebird/js/release/promise.js:569:18)\n    at Promise._settlePromiseCtx (/app/node_modules/bluebird/js/release/promise.js:606:10)\n    at _drainQueueStep (/app/node_modules/bluebird/js/release/async.js:142:12)\n    at _drainQueue (/app/node_modules/bluebird/js/release/async.js:131:9)","levelPath":"fatal/startup","msg":"Message not supplied","time":"2018-09-13T09:17:21.208Z","v":0}
2018-09-13T09:17:21.341796+00:00 app[web.1]: {"name":"restbase","hostname":"1376627b-90bb-4581-b8a5-0d7933cf2e66","pid":291,"level":60,"err":{"message":"Cannot find module 'restbase-mod-table-sqlite'","name":"Error","stack":"Error: Cannot find module 'restbase-mod-table-sqlite'\n    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)\n    at Function.Module._load (internal/modules/cjs/loader.js:507:25)\n    at Module.require (internal/modules/cjs/loader.js:637:17)\n    at require (internal/modules/cjs/helpers.js:20:18)\n    at module.exports (/app/sys/table.js:17:12)\n    at Router._loadModule (/app/node_modules/hyperswitch/lib/router.js:229:26)\n    at P.each (/app/node_modules/hyperswitch/lib/router.js:255:25)\n    at tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Object.gotValue (/app/node_modules/bluebird/js/release/reduce.js:155:18)\n    at Object.gotAccum (/app/node_modules/bluebird/js/release/reduce.js:144:25)\n    at Object.tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Promise._settlePromiseFromHandler (/app/node_modules/bluebird/js/release/promise.js:512:31)\n    at Promise._settlePromise (/app/node_modules/bluebird/js/release/promise.js:569:18)\n    at Promise._settlePromiseCtx (/app/node_modules/bluebird/js/release/promise.js:606:10)\n    at _drainQueueStep (/app/node_modules/bluebird/js/release/async.js:142:12)\n    at _drainQueue (/app/node_modules/bluebird/js/release/async.js:131:9)","code":"MODULE_NOT_FOUND"},"stack":"Error: Cannot find module 'restbase-mod-table-sqlite'\n    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)\n    at Function.Module._load (internal/modules/cjs/loader.js:507:25)\n    at Module.require (internal/modules/cjs/loader.js:637:17)\n    at require (internal/modules/cjs/helpers.js:20:18)\n    at module.exports (/app/sys/table.js:17:12)\n    at Router._loadModule (/app/node_modules/hyperswitch/lib/router.js:229:26)\n    at P.each (/app/node_modules/hyperswitch/lib/router.js:255:25)\n    at tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Object.gotValue (/app/node_modules/bluebird/js/release/reduce.js:155:18)\n    at Object.gotAccum (/app/node_modules/bluebird/js/release/reduce.js:144:25)\n    at Object.tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Promise._settlePromiseFromHandler (/app/node_modules/bluebird/js/release/promise.js:512:31)\n    at Promise._settlePromise (/app/node_modules/bluebird/js/release/promise.js:569:18)\n    at Promise._settlePromiseCtx (/app/node_modules/bluebird/js/release/promise.js:606:10)\n    at _drainQueueStep (/app/node_modules/bluebird/js/release/async.js:142:12)\n    at _drainQueue (/app/node_modules/bluebird/js/release/async.js:131:9)","levelPath":"fatal/startup","msg":"Message not supplied","time":"2018-09-13T09:17:21.339Z","v":0}
2018-09-13T09:17:22.338253+00:00 app[web.1]: {"name":"restbase","hostname":"1376627b-90bb-4581-b8a5-0d7933cf2e66","pid":298,"level":60,"err":{"message":"Cannot find module 'restbase-mod-table-sqlite'","name":"Error","stack":"Error: Cannot find module 'restbase-mod-table-sqlite'\n    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)\n    at Function.Module._load (internal/modules/cjs/loader.js:507:25)\n    at Module.require (internal/modules/cjs/loader.js:637:17)\n    at require (internal/modules/cjs/helpers.js:20:18)\n    at module.exports (/app/sys/table.js:17:12)\n    at Router._loadModule (/app/node_modules/hyperswitch/lib/router.js:229:26)\n    at P.each (/app/node_modules/hyperswitch/lib/router.js:255:25)\n    at tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Object.gotValue (/app/node_modules/bluebird/js/release/reduce.js:155:18)\n    at Object.gotAccum (/app/node_modules/bluebird/js/release/reduce.js:144:25)\n    at Object.tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Promise._settlePromiseFromHandler (/app/node_modules/bluebird/js/release/promise.js:512:31)\n    at Promise._settlePromise (/app/node_modules/bluebird/js/release/promise.js:569:18)\n    at Promise._settlePromiseCtx (/app/node_modules/bluebird/js/release/promise.js:606:10)\n    at _drainQueueStep (/app/node_modules/bluebird/js/release/async.js:142:12)\n    at _drainQueue (/app/node_modules/bluebird/js/release/async.js:131:9)","code":"MODULE_NOT_FOUND"},"stack":"Error: Cannot find module 'restbase-mod-table-sqlite'\n    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)\n    at Function.Module._load (internal/modules/cjs/loader.js:507:25)\n    at Module.require (internal/modules/cjs/loader.js:637:17)\n    at require (internal/modules/cjs/helpers.js:20:18)\n    at module.exports (/app/sys/table.js:17:12)\n    at Router._loadModule (/app/node_modules/hyperswitch/lib/router.js:229:26)\n    at P.each (/app/node_modules/hyperswitch/lib/router.js:255:25)\n    at tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Object.gotValue (/app/node_modules/bluebird/js/release/reduce.js:155:18)\n    at Object.gotAccum (/app/node_modules/bluebird/js/release/reduce.js:144:25)\n    at Object.tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n    at Promise._settlePromiseFromHandler (/app/node_modules/bluebird/js/release/promise.js:512:31)\n    at Promise._settlePromise (/app/node_modules/bluebird/js/release/promise.js:569:18)\n    at Promise._settlePromiseCtx (/app/node_modules/bluebird/js/release/promise.js:606:10)\n    at _drainQueueStep (/app/node_modules/bluebird/js/release/async.js:142:12)\n    at _drainQueue (/app/node_modules/bluebird/js/release/async.js:131:9)","levelPath":"fatal/startup","msg":"Message not supplied","time":"2018-09-13T09:17:22.296Z","v":0}
2018-09-13T09:17:22.425871+00:00 app[web.1]: {"name":"restbase","hostname":"1376627b-90bb-4581-b8a5-0d7933cf2e66","pid":21,"level":50,"message":"worker died, restarting","worker_pid":299,"exit_code":1,"levelPath":"error/service-runner/master","msg":"worker died, restarting","time":"2018-09-13T09:17:22.425Z","v":0}
2018-09-13T09:17:23.275462+00:00 app[web.1]: {"name":"restbase","hostname":"1376627b-90bb-4581-b8a5-0d7933cf2e66","pid":21,"level":50,"message":"worker died, restarting","worker_pid":312,"exit_code":1,"levelPath":"error/service-runner/master","msg":"worker died, restarting","time":"2018-09-13T09:17:23.275Z","v":0}
2018-09-13T09:17:23.400560+00:00 app[web.1]: {"name":"restbase","hostname":"1376627b-90bb-4581-b8a5-0d7933cf2e66","pid":21,"level":50,"message":"worker died, restarting","worker_pid":291,"exit_code":1,"levelPath":"error/service-runner/master","msg":"worker died, restarting","time":"2018-09-13T09:17:23.400Z","v":0}
2018-09-13T09:17:24.384865+00:00 app[web.1]: {"name":"restbase","hostname":"1376627b-90bb-4581-b8a5-0d7933cf2e66","pid":21,"level":50,"message":"worker died, restarting","worker_pid":298,"exit_code":1,"levelPath":"error/service-runner/master","msg":"worker died, restarting","time":"2018-09-13T09:17:24.384Z","v":0}

Any fix? John Harry Lau (talk) 09:26, 13 September 2018 (UTC)

VisualEditor together with RESTBase give HTTP 404 apierror-visualeditor-docserver-http

I try to setup a Mediawiki with Visual Editor, Parsoid and RESTBase.

I have been able to setup the wiki with only Visual Editor and Parsoid, but when I try to get RESTBase to work I get problems.

When I try to edit a page with Visual Editor and try to save, I get a HTTP 404 apierror-visualeditor-docserver-http

See my code at https://github.com/magol/sag-wiki/tree/master/sag-wiki

Settings for Virtual Editor

    $wgVirtualRestConfig['modules']['parsoid'] = array(
        'url'                   => getenv( 'MEDIAWIKI_PARSOID_URL' ),
        'domain'                => 'localhost',
        'prefix'                => 'localhost'
    );
    
    $wgVirtualRestConfig['modules']['restbase'] = array(
    	'url' => getenv( 'MEDIAWIKI_SERVER' ).'/api/rest_v1',
    	'domain' => 'localhost', # matches the "domain" used above
    	'forwardCookies' => true,
    	'parsoidCompat' => false
    );
    $wgVisualEditorRestbaseURL     = getenv( 'MEDIAWIKI_SERVER' ).'/api/rest_v1/page/html/';
    $wgVisualEditorFullRestbaseURL = getenv( 'MEDIAWIKI_SERVER' ).'/api/rest_';

Settings for RESTBase

services:
  - name: restbase
    module: hyperswitch
    conf:
      port: {env(RESTBASE_PORT,7231)}
      salt: secret
      default_page_size: 125
      user_agent: RESTBase
      ui_name: RESTBase
      ui_url: https://www.mediawiki.org/wiki/RESTBase
      ui_title: RESTBase docs
      spec:
        x-request-filters:
          - path: lib/security_response_header_filter.js
          - path: lib/normalize_headers_filter.js
        x-sub-request-filters:
          - type: default
            name: http
            options:
              allow:
                - pattern: '{env(MEDIAWIKI_API_URL,http://localhost/w/api.php)}'
                  forward_headers: true
                - pattern: http://localhost:8142
                  forward_headers: true
                - pattern: /^https?:\/\//
        paths:
          /{domain:localhost}:
            x-modules:
              - path: projects/example.yaml
                options:
                  action:
                    # XXX Check API URL!
                    apiUriTemplate: '{env(MEDIAWIKI_API_URL,http://localhost/w/api.php)}'
                    # XXX Check the base RESTBase URI
                    baseUriTemplate: "{{'http://{domain}:7231/{domain}/v1'}}"
                  parsoid:
                    # XXX Check Parsoid URL!
                    host: '{env(PARSOID_HOST_PORT,http://localhost:8142)}'
                  table:
                    backend: sqlite
                    dbname: /data/restbase_tables.sqlite3
                    pool_idle_timeout: 20000
                    retry_delay: 250
                    retry_limit: 10
                    show_sql: false
                  mathoid:
                    host: '{env(MATHOID_HOST_PORT,http://localhost:10044)}'
                  mobileapps:
                    host: '{env(MOBILEAPPS_URI,https://appservice.wmflabs.org)}'
                  citoid:
                    host: '{env(CITOID_URI,http://localhost:1970)}'
                  purged_cache_control: s-maxage=0, max-age=86400
                  purged_cache_control_client_cache: s-maxage=0, max-age=300

# Finally, a standard service-runner config.
info:
  name: restbase

logging:
  name: restbase
  level: '{env(RESTBASE_LOGGING_LEVEL,info)}'

num_workers: 1

Settings for Parsoid

    num_workers: '0'
    worker_heartbeat_timeout: 300000
    logging:
        level: info
    services:
      - module: lib/index.js
        entrypoint: apiServiceWorker
        conf:
            serverPort: 8142
            mwApis:
              -
                uri: 'http://web/w/api.php'
                domain: 'localhost'

Magol (talk) 12:41, 20 September 2018 (UTC)

https://wikimedia.org/api/rest_v1/ returning code 0 and not 200

The following discussion is closed. Please do not modify it. Subsequent comments should be made on the appropriate discussion page. No further edits should be made to this discussion.


Using mediawiki 1.31 and Math extension REL_31

Failed to parse (MathML with SVG or PNG fallback (recommended for modern browsers and accessibility tools): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":)

If i change it to allow code 0:


  diff --git a/MathRestbaseInterface.php b/MathRestbaseInterface.php
  index 2dc5d45..5355177 100644
  --- a/MathRestbaseInterface.php
  +++ b/MathRestbaseInterface.php
  @@ -364,7 +364,7 @@ class MathRestbaseInterface {
           */
          public function evaluateRestbaseCheckResponse( $response ) {
                  $json = json_decode( $response['body'] );
  -               if ( $response['code'] === 200 ) {
  +               if ( $response['code'] === 200 || $response['code'] === 0) {
                          $headers = $response['headers'];
                          $this->hash = $headers['x-resource-location'];
                          $this->success = $json->success;
  

I get

Failed to parse (Conversion error. Server ("https://wikimedia.org/api/rest_") reported: "Cannot get mml. Server problem.")

Is the RESTBase server down? Nyet (talk) 01:35, 8 November 2018 (UTC)

The discussion above is closed. Please do not modify it. No further edits should be made to this discussion.

Trouble setting up RESTbase in MediaWiki


New RESTBase installation broken - No storage group configured for localhost

Hey there,


at the moment, I'm trying to install a new RESTBase service for testing purposes. I'm using openSUSE Leap 15.0 for my environment.

After downloading the RESTBase components over git and installing all necessary packages trough npm install (with the same steps as they're documented at the RESTBase article), my system only throws the following error messages over and over again until I kill the RESTBase process:


{"name":"restbase","hostname":"linux-p2rf","pid":134906,"level":60,"err":{"message":"No storage group configured for localhost","name":"Error","stack":"Error: No storage group configured for localhost\n    at DB._resolveStorageGroup (/var/lib/restbase/restbase/node_modules/restbase-mod-table-sqlite/lib/db.js:88:19)\n    at DB._tableName (/var/lib/restbase/restbase/node_modules/restbase-mod-table-sqlite/lib/db.js:96:27)\n    at DB.createTable (/var/lib/restbase/restbase/node_modules/restbase-mod-table-sqlite/lib/db.js:155:43)\n    at RBSQLite.createTable (/var/lib/restbase/restbase/node_modules/restbase-mod-table-sqlite/index.js:37:22)\n    at tryCatcher (/var/lib/restbase/restbase/node_modules/bluebird/js/release/util.js:16:23)\n    at /var/lib/restbase/restbase/node_modules/bluebird/js/release/method.js:15:34\n    at handlerWrapper (/var/lib/restbase/restbase/node_modules/hyperswitch/lib/hyperswitch.js:422:37)\n    at next (/var/lib/restbase/restbase/node_modules/hyperswitch/lib/hyperswitch.js:408:42)\n    at Object.module.exports [as filter] (/var/lib/restbase/restbase/node_modules/hyperswitch/lib/filters/validator.js:272:12)\n    at handlerWrapper (/var/lib/restbase/restbase/node_modules/hyperswitch/lib/hyperswitch.js:420:27)\n    at next (/var/lib/restbase/restbase/node_modules/hyperswitch/lib/hyperswitch.js:408:42)\n    at Object.module.exports [as filter] (/var/lib/restbase/restbase/node_modules/hyperswitch/lib/filters/metrics.js:16:12)\n    at handlerWrapper (/var/lib/restbase/restbase/node_modules/hyperswitch/lib/hyperswitch.js:420:27)\n    at /var/lib/restbase/restbase/node_modules/hyperswitch/lib/hyperswitch.js:426:28\n    at P.resolve.then (/var/lib/restbase/restbase/node_modules/hyperswitch/lib/hyperswitch.js:229:24)\n    at tryCatcher (/var/lib/restbase/restbase/node_modules/bluebird/js/release/util.js:16:23)"},"stack":"Error: No storage group configured for localhost\n    at DB._resolveStorageGroup (/var/lib/restbase/restbase/node_modules/restbase-mod-table-sqlite/lib/db.js:88:19)\n    at DB._tableName (/var/lib/restbase/restbase/node_modules/restbase-mod-table-sqlite/lib/db.js:96:27)\n    at DB.createTable (/var/lib/restbase/restbase/node_modules/restbase-mod-table-sqlite/lib/db.js:155:43)\n    at RBSQLite.createTable (/var/lib/restbase/restbase/node_modules/restbase-mod-table-sqlite/index.js:37:22)\n    at tryCatcher (/var/lib/restbase/restbase/node_modules/bluebird/js/release/util.js:16:23)\n    at /var/lib/restbase/restbase/node_modules/bluebird/js/release/method.js:15:34\n    at handlerWrapper (/var/lib/restbase/restbase/node_modules/hyperswitch/lib/hyperswitch.js:422:37)\n    at next (/var/lib/restbase/restbase/node_modules/hyperswitch/lib/hyperswitch.js:408:42)\n    at Object.module.exports [as filter] (/var/lib/restbase/restbase/node_modules/hyperswitch/lib/filters/validator.js:272:12)\n    at handlerWrapper (/var/lib/restbase/restbase/node_modules/hyperswitch/lib/hyperswitch.js:420:27)\n    at next (/var/lib/restbase/restbase/node_modules/hyperswitch/lib/hyperswitch.js:408:42)\n    at Object.module.exports [as filter] (/var/lib/restbase/restbase/node_modules/hyperswitch/lib/filters/metrics.js:16:12)\n    at handlerWrapper (/var/lib/restbase/restbase/node_modules/hyperswitch/lib/hyperswitch.js:420:27)\n    at /var/lib/restbase/restbase/node_modules/hyperswitch/lib/hyperswitch.js:426:28\n    at P.resolve.then (/var/lib/restbase/restbase/node_modules/hyperswitch/lib/hyperswitch.js:229:24)\n    at tryCatcher (/var/lib/restbase/restbase/node_modules/bluebird/js/release/util.js:16:23)","levelPath":"fatal/startup","msg":"Message not supplied","time":"2019-06-11T20:44:22.888Z","v":0}

At this point, I've killed the RESTBase process. The error message above loops over and over again.

{"name":"restbase","hostname":"linux-p2rf","pid":134865,"level":30,"levelPath":"info/service-runner/master","msg":"master shutting down, killing workers","time":"2019-06-11T20:44:23.853Z","v":0}

{"name":"restbase","hostname":"linux-p2rf","pid":134865,"level":30,"levelPath":"info/service-runner/master","msg":"Exiting master","time":"2019-06-11T20:44:23.872Z","v":0}


Any ideas? Daxfox2172 (talk) 22:08, 11 June 2019 (UTC)

Looks like a breaking change was made in the most recent version of the sqlite module. Take the "storage_groups" bit of the sample config at github.com/wikimedia/restbase-mod-table-sqlite/blob/master/test/test_client.conf.yaml and add it into the "table" bit of your restbase config. Seemed to work for me. 82.17.196.54 (talk) 21:51, 16 June 2019 (UTC)
The above suggestion worked for me.
I just added the following to "the table bit" of my config:
storage_groups:
    - name: default.group
      domains: /./
PS: there's an issue for it here: https://phabricator.wikimedia.org/T227486 Metalliqaz (talk) 16:53, 15 July 2019 (UTC)
I've already added it there : RESTBase/Installation#Configuration ;) Echodelta21 (talk) 19:00, 23 July 2019 (UTC)

Catalog of clients

Is there a page like API:Client code for RESTBase? I've been working on a client library and would love to look at other implementations for inspiration. Also, I'd like my library to be discoverable when the time comes. Adamw (talk) 08:07, 18 June 2019 (UTC)

Documentation for update job schedule?

I'm learning the RESTBase API, and noticed some idiosyncracies about using today's date. Many calls fail if I try to pull today's data, until the update job runs, and some calls like edits/aggregate only have data for the previous month. What's the recommended way to handle this? Should I hardcode matching behavior into my API calls, in other words only pull aggregate edit counts for the previous calendar month, given some margin of safety like 1 day in order to guarantee that the data will be populated? Or should I just retry time intervals, shifting them backwards until the call succeeds? Is the update job schedule documented somewhere canonical? Adamw (talk) 08:12, 18 June 2019 (UTC)

Fresh install of RESTBase doesn't work

First, I had the same issue as the user below, "No storage group configured for localhost". I overcame that, to be able to start the server, but it doesn't work.


Attempting to start VisualEditor fails with "Error loading data from server: HTTP 200. Would you like to retry?" And I get the following error in RESTBase (i have edited out my domain):


{"name":"restbase","hostname":"bones","pid":51160,"level":40,"err":{"message":"404: not_found#route","name":"restbase","stack":"HTTPError: 404: not_found#route

   at HyperSwitch._request (/usr/home/dave/restbase-1.0.0/node_modules/hyperswitch/lib/hyperswitch.js:268:19)

   at _createFilteredHandler (/usr/home/dave/restbase-1.0.0/node_modules/hyperswitch/lib/hyperswitch.js:170:26)

   at tryCatcher (/usr/home/dave/restbase-1.0.0/node_modules/bluebird/js/release/util.js:16:23)

   at /usr/home/dave/restbase-1.0.0/node_modules/bluebird/js/release/method.js:15:34

   at handlerWrapper (/usr/home/dave/restbase-1.0.0/node_modules/hyperswitch/lib/hyperswitch.js:422:37)

   at next (/usr/home/dave/restbase-1.0.0/node_modules/hyperswitch/lib/hyperswitch.js:408:42)

   at Object.module.exports [as filter] (/usr/home/dave/restbase-1.0.0/node_modules/hyperswitch/lib/filters/http.js:24:16)

   at handlerWrapper (/usr/home/dave/restbase-1.0.0/node_modules/hyperswitch/lib/hyperswitch.js:420:27)

   at /usr/home/dave/restbase-1.0.0/node_modules/hyperswitch/lib/hyperswitch.js:426:28

   at HyperSwitch._filteredRequest (/usr/home/dave/restbase-1.0.0/node_modules/hyperswitch/lib/hyperswitch.js:171:19)

   at HyperSwitch.(anonymous function) [as post] (/usr/home/dave/restbase-1.0.0/node_modules/hyperswitch/lib/hyperswitch.js:460:21)

   at mwUtil.getSiteInfo.then (/usr/home/dave/restbase-1.0.0/sys/parsoid.js:88:22)

   at tryCatcher (/usr/home/dave/restbase-1.0.0/node_modules/bluebird/js/release/util.js:16:23)

   at Promise._settlePromiseFromHandler (/usr/home/dave/restbase-1.0.0/node_modules/bluebird/js/release/promise.js:517:31)

   at Promise._settlePromise (/usr/home/dave/restbase-1.0.0/node_modules/bluebird/js/release/promise.js:574:18)

   at Promise._settlePromise0 (/usr/home/dave/restbase-1.0.0/node_modules/bluebird/js/release/promise.js:619:10)","status":404,"body":{"type":"not_found#route","title":"Not found.","internalURI":"/fake.example.net/sys/events/","method":"post","depth":2},"root_req":{"method":"get","uri":"/fake.example.net/v1/page/html/MediaWiki_Server/24?redirect=false","headers":{"user-agent":"VisualEditor-MediaWiki/1.32.0","x-client-ip":"::1","x-forwarded-for":"::1","x-request-id":"8b8d1910-a45b-11e9-a949-65e3af41582b","x-request-class":"internal"}},"request_id":"8b8d1910-a45b-11e9-a949-65e3af41582b","api_path":"/fake.example.net/v1/page/html/{title}/{revision}","levelPath":"warn/bg-updates"},"msg":"404: not_found#route","time":"2019-07-12T04:14:32.084Z","v":0}


Can anyone help me out? I'm really stumped here and I just want my VisualEditor to work right. 2601:19A:8380:7EF7:99D5:B7D2:FF2:5F71 (talk) 04:19, 12 July 2019 (UTC)

I attempted to fix the error by editing projects/example.yaml with the "events" config from the other examples. Now I'm getting this:
{"name":"restbase","hostname":"bones","pid":51532,"level":50,"message":"500: internal_error","res":{"name":"HTTPError","message":"500: internal_error","status":500,"body":{"type":"internal_error","description":"TypeError: Cannot set property 'etag' of undefined"},"innerError":{"requestName":"get_from_backend"},"headers":{"access-control-allow-origin":"*","access-control-allow-methods":"GET,HEAD","access-control-allow-headers":"accept, content-type, content-length, cache-control, accept-language, api-user-agent, if-match, if-modified-since, if-none-match, dnt, accept-encoding","access-control-expose-headers":"etag","x-content-type-options":"nosniff","x-frame-options":"SAMEORIGIN","referrer-policy":"origin-when-cross-origin","x-xss-protection":"1; mode=block","content-security-policy":"default-src 'none'; frame-ancestors 'none'","x-content-security-policy":"default-src 'none'; frame-ancestors 'none'","x-webkit-csp":"default-src 'none'; frame-ancestors 'none'","cache-control":"private, max-age=0, s-maxage=0, must-revalidate","x-request-id":"f6006bc0-a45c-11e9-899d-cd6b4b45393b","server":"bones"}},"stack":"TypeError: Cannot set property 'etag' of undefined
   at contentReq.then.then (/usr/home/dave/restbase-1.0.0/sys/parsoid.js:511:30)
   at tryCatcher (/usr/home/dave/restbase-1.0.0/node_modules/bluebird/js/release/util.js:16:23)
   at Promise._settlePromiseFromHandler (/usr/home/dave/restbase-1.0.0/node_modules/bluebird/js/release/promise.js:517:31)
   at Promise._settlePromise (/usr/home/dave/restbase-1.0.0/node_modules/bluebird/js/release/promise.js:574:18)
   at Promise._settlePromise0 (/usr/home/dave/restbase-1.0.0/node_modules/bluebird/js/release/promise.js:619:10)
   at Promise._settlePromises (/usr/home/dave/restbase-1.0.0/node_modules/bluebird/js/release/promise.js:699:18)
   at Promise._fulfill (/usr/home/dave/restbase-1.0.0/node_modules/bluebird/js/release/promise.js:643:18)
   at Promise._resolveCallback (/usr/home/dave/restbase-1.0.0/node_modules/bluebird/js/release/promise.js:437:57)
   at Promise._settlePromiseFromHandler (/usr/home/dave/restbase-1.0.0/node_modules/bluebird/js/release/promise.js:529:17)
   at Promise._settlePromise (/usr/home/dave/restbase-1.0.0/node_modules/bluebird/js/release/promise.js:574:18)
   at Promise._settlePromise0 (/usr/home/dave/restbase-1.0.0/node_modules/bluebird/js/release/promise.js:619:10)
   at Promise._settlePromises (/usr/home/dave/restbase-1.0.0/node_modules/bluebird/js/release/promise.js:699:18)
   at Promise._fulfill (/usr/home/dave/restbase-1.0.0/node_modules/bluebird/js/release/promise.js:643:18)
   at Promise._settlePromise (/usr/home/dave/restbase-1.0.0/node_modules/bluebird/js/release/promise.js:587:21)
   at Promise._settlePromise0 (/usr/home/dave/restbase-1.0.0/node_modules/bluebird/js/release/promise.js:619:10)
   at Promise._settlePromises (/usr/home/dave/restbase-1.0.0/node_modules/bluebird/js/release/promise.js:699:18)","latency":288,"root_req":{"method":"get","uri":"/fake.example.net/v1/page/html/MediaWiki_Server/24?redirect=false","headers":{"user-agent":"VisualEditor-MediaWiki/1.32.0","x-client-ip":"::1","x-forwarded-for":"::1","x-request-id":"f6006bc0-a45c-11e9-899d-cd6b4b45393b","x-request-class":"internal"}},"request_id":"f6006bc0-a45c-11e9-899d-cd6b4b45393b","levelPath":"error/request","msg":"500: internal_error","time":"2019-07-12T04:24:38.556Z","v":0}
I also get that error when trying to use curl as suggested by the install docs. First the curl works, and then subsequent attempts return that error.
Again, any help is truly appreciated. 2601:19A:8380:7EF7:99D5:B7D2:FF2:5F71 (talk) 04:27, 12 July 2019 (UTC)
I am also having the Fresh install in another RHEL7 server, And it fails with following ERROR.
{"name":"restbase","hostname":"linapp3050","pid":24490,"level":50,"message":"worker died, restarting","worker_pid":24598,"exit_code":1,"levelPath":"error/service-runner/master","msg":"worker died, restarting","time":"2019-07-15T13:02:21.353Z","v":0}

Sanjay (talk) 13:12, 15 July 2019 (UTC)
@Anu8791You need to look at the lines before to know what caused the worker died.
@2601:19A:8380:7EF7:99D5:B7D2:FF2:5F71 I've got the same error after setting up a fresh install (without WMF-like URLs now). By logging at trace level, I can see restbase succeeds in talking with parsoid as far as it gets the html content of the page but then I've got this 500 error with the same message (and at line 511 in sys/parsoid.js too). Echodelta21 (talk) 19:05, 23 July 2019 (UTC)

MediaWiki 1.35

Does it come along with MediaWiki 1.35 or should it be installed separately? If it doesn't come along with MediaWiki 1.35 is it mandatory for VisualEditor to work properly or we can skip its installation? Costas Athan (talk) 09:55, 26 September 2020 (UTC)

I had to enable VisualEditor to make it work on 1.35.0
I was able to get
rest.php/v1/page/Main_page/bare and rest.php/v1/page/Main_page to work
But rest.php/v1/page/Main_page/html fails.
It gives the following error
{
"messageTranslations":
{"en":"Unable to fetch Parsoid HTML"},
"httpCode":500,
"httpReason":"Internal Server Error"
}
What should I do to make html endpoint to work? Akhilkodali (talk) 03:37, 27 September 2020 (UTC)
+1 to the question "What should I do to make html endpoint to work?" SkywalkerPL (talk) 11:36, 4 August 2022 (UTC)

Serverless RESTBase?

I understand installing a RESTBase server will help with dirty differences. I keep getting these 'return' symbols and errors in conversion when switching from wikieditor to visualeditor and from what I read I'd need RESTBase server to help with that.

Is it possible to set up as a Lambda service in Amazon AWS instead of having a fully devoted server? i.e. does anyone have any pointers as to whether that should be possible (I assume HTTP API Gateway + Lambda function + Amazon Keyspaces for Apache Cassandra)?

Any pointer would be really helpful.

Thank you! Krug Walton (talk) 11:53, 21 October 2020 (UTC)

Data store retention policy

RESTBase acts as a data store, and storage is either sqlite or cassandra.

What I can't find anywhere in the documentation is the retention policy of the stored data.

After some months or years of usage, the sqlite file is in the order of Gigabytes. Quite unmanageable. I simply stopped the service, deleted the sqlite file and started it again, and everything seems to work. However, is there any purge or maintenance process of the data that I should run periodically to clean up unneeded data? I mean, stopping the service, manually removing the file and starting again is not particularly clean (although doable from a shell script run from cron). However, is it safe? As I said, apparently everything works, but I'd like to be sure it's safe to do, or if there are more clean ways to remove old data.

I want to migrate the store backend to cassandra, and I fear I'll have the same problems, data storage getting bigger without limit, and the only way to clean it would be to delete the storage entirely and let it recreate itself.

WMF should have bigger storage needs for all its wikis. How is WMF doing this? Do they really have terabytes of data in their cassandra cluster? Is all the data really needed? Ciencia Al Poder (talk) 12:05, 26 December 2021 (UTC)

Looks like the intention is to not clean old data, and if possible, store the HTML of every possible revision.
See: https://phabricator.wikimedia.org/T97692#1531999
In May, 2022, WMF is using 43 TB of storage for their cassandra instances according to grafana. Ciencia Al Poder (talk) 14:47, 23 April 2022 (UTC)
After revisiting this, and finding the sqlite db file being 7.5GB of size, I decided to rename the db file to _old and restart the service.
I tried to reload a page that contained math formulas and surprisingly the formulas stoped working. Opening the image URL in the browser resulted in a json error telling it wasn't able to find a file. Quite shocking. The error disappeared once I edited the page.
Apparently, math images aren't regenerated on the fly, which means the database should never be purged, otherwise all math formulas will start failing until the page is edited+previewed, or force-purged.
I didn't expect Restbase database being used to store PNG images. That looks pretty inefficient. Ciencia Al Poder (talk) 18:08, 17 February 2023 (UTC)

RESTBase + Cassandra

I've tried to install apache Cassandra on latest Debian (bullseye), to use as a storage backend of RESTBase instead of sqlite, to see if it improves storage usage. It has been an impossible task and very time consuming. So please, don't try yourself unless you're adventurous and have a lot of time to spend on this!

I started by installing the latest Cassandra (version 4). Cassandra works. After configuring RESTBase to use Cassandra as the backend, RESTBase doesn't start. Or rather, it starts, but it never reaches the "startup finished" state... It connects to Cassandra, initializes everything, and then it seems to get stuck somewhere to the point that it never listens to the configured port.

Then I decided to install version 2.2.x of Cassandra, to see if it was a compatibility problem. WMF seems to be using 2.2.x (OMG very old version!). But neither it or 3.11.x works on latest Debian. Cassandra won't start. It fails with errors that require editing several config files, removing configurations not supported on recent Java versions... and after making it run, looks like some tools like nodetool will refuse to work, with cryptic errors that apparently are caused by not using Java 8.

Yes, Cassandra 2.x and 3.x only supports Java 8, which is not included by default in Debian. Even cassandra 4.x says support for Java 11 is experimental.

Is it worth the hassle? No

</rant> Ciencia Al Poder (talk) 17:33, 26 December 2021 (UTC)