Just started using Metabase yesterday and today I’m in love.
However, I’m having problem limiting a group’s access to a specific set of MySQL (AWS RDS) tables, even though the same operation works for the sample (H2) database tables.
When I go to change the red X from “no access” to “limit access” it just hangs. Here are a few things that might help diagnose the problem:
The URL changes to /admin/permissions/databases/2/schemas/null/tables
It looks like the null in the second-to-last (null) path parameter is what’s causing the problem.
when I inspect the /database?include=tables request in the browser’s developer console, I see that each of the tables has schema:null in the JSON response for the MySQL database. In the sample H2 database, it’s “PUBLIC”
{description: “VIEW”, entity_type: “entity/GenericTable”, schema: null, show_in_getting_started: false…}
I can’t see any way to set the schema to not be null for that database / set of tables.
The following errors are in the browser console:
Uncaught TypeError: Cannot read property ‘tables’ of null
at app-main.bundle.js?f24695780b695904f509:5
at vendor.bundle.js?f24695780b695904f509:1
at vendor.bundle.js?f24695780b695904f509:1
at vendor.bundle.js?f24695780b695904f509:1
at vendor.bundle.js?f24695780b695904f509:1
at Function.mapToProps (app-main.bundle.js?f24695780b695904f509:5)
at i (vendor.bundle.js?f24695780b695904f509:1)
at Function.i.mapToProps (vendor.bundle.js?f24695780b695904f509:1)
at i (vendor.bundle.js?f24695780b695904f509:1)
at vendor.bundle.js?f24695780b695904f509:1
(anonymous) @ app-main.bundle.js?f24695780b695904f509:5
(anonymous) @ vendor.bundle.js?f24695780b695904f509:1
(anonymous) @ vendor.bundle.js?f24695780b695904f509:1
(anonymous) @ vendor.bundle.js?f24695780b695904f509:1
(anonymous) @ vendor.bundle.js?f24695780b695904f509:1
(anonymous) @ app-main.bundle.js?f24695780b695904f509:5
i @ vendor.bundle.js?f24695780b695904f509:1
i.mapToProps @ vendor.bundle.js?f24695780b695904f509:1
i @ vendor.bundle.js?f24695780b695904f509:1
(anonymous) @ vendor.bundle.js?f24695780b695904f509:1
run @ vendor.bundle.js?f24695780b695904f509:1
i.initSelector @ vendor.bundle.js?f24695780b695904f509:1
Connect(PermissionsEditor) @ vendor.bundle.js?f24695780b695904f509:1
_constructComponentWithoutOwner @ vendor.bundle.js?f24695780b695904f509:1
_constructComponent @ vendor.bundle.js?f24695780b695904f509:1
mountComponent @ vendor.bundle.js?f24695780b695904f509:1
mountComponent @ vendor.bundle.js?f24695780b695904f509:1
updateChildren @ vendor.bundle.js?f24695780b695904f509:1
_reconcilerUpdateChildren @ vendor.bundle.js?f24695780b695904f509:1
_updateChildren @ vendor.bundle.js?f24695780b695904f509:1
updateChildren @ vendor.bundle.js?f24695780b695904f509:1
_updateDOMChildren @ vendor.bundle.js?f24695780b695904f509:1
updateComponent @ vendor.bundle.js?f24695780b695904f509:1
receiveComponent @ vendor.bundle.js?f24695780b695904f509:1
receiveComponent @ vendor.bundle.js?f24695780b695904f509:1
_updateRenderedComponent @ vendor.bundle.js?f24695780b695904f509:1
_performComponentUpdate @ vendor.bundle.js?f24695780b695904f509:1
updateComponent @ vendor.bundle.js?f24695780b695904f509:1
receiveComponent @ vendor.bundle.js?f24695780b695904f509:1
receiveComponent @ vendor.bundle.js?f24695780b695904f509:1
_updateRenderedComponent @ vendor.bundle.js?f24695780b695904f509:1
_performComponentUpdate @ vendor.bundle.js?f24695780b695904f509:1
updateComponent @ vendor.bundle.js?f24695780b695904f509:1
receiveComponent @ vendor.bundle.js?f24695780b695904f509:1
receiveComponent @ vendor.bundle.js?f24695780b695904f509:1
_updateRenderedComponent @ vendor.bundle.js?f24695780b695904f509:1
_performComponentUpdate @ vendor.bundle.js?f24695780b695904f509:1
updateComponent @ vendor.bundle.js?f24695780b695904f509:1
receiveComponent @ vendor.bundle.js?f24695780b695904f509:1
receiveComponent @ vendor.bundle.js?f24695780b695904f509:1
_updateRenderedComponent @ vendor.bundle.js?f24695780b695904f509:1
_performComponentUpdate @ vendor.bundle.js?f24695780b695904f509:1
updateComponent @ vendor.bundle.js?f24695780b695904f509:1
receiveComponent @ vendor.bundle.js?f24695780b695904f509:1
receiveComponent @ vendor.bundle.js?f24695780b695904f509:1
_updateRenderedComponent @ vendor.bundle.js?f24695780b695904f509:1
_performComponentUpdate @ vendor.bundle.js?f24695780b695904f509:1
updateComponent @ vendor.bundle.js?f24695780b695904f509:1
receiveComponent @ vendor.bundle.js?f24695780b695904f509:1
receiveComponent @ vendor.bundle.js?f24695780b695904f509:1
_updateRenderedComponent @ vendor.bundle.js?f24695780b695904f509:1
_performComponentUpdate @ vendor.bundle.js?f24695780b695904f509:1
updateComponent @ vendor.bundle.js?f24695780b695904f509:1
receiveComponent @ vendor.bundle.js?f24695780b695904f509:1
receiveComponent @ vendor.bundle.js?f24695780b695904f509:1
_updateRenderedComponent @ vendor.bundle.js?f24695780b695904f509:1
_performComponentUpdate @ vendor.bundle.js?f24695780b695904f509:1
updateComponent @ vendor.bundle.js?f24695780b695904f509:1
receiveComponent @ vendor.bundle.js?f24695780b695904f509:1
receiveComponent @ vendor.bundle.js?f24695780b695904f509:1
_updateRenderedComponent @ vendor.bundle.js?f24695780b695904f509:1
_performComponentUpdate @ vendor.bundle.js?f24695780b695904f509:1
updateComponent @ vendor.bundle.js?f24695780b695904f509:1
receiveComponent @ vendor.bundle.js?f24695780b695904f509:1
receiveComponent @ vendor.bundle.js?f24695780b695904f509:1
_updateRenderedComponent @ vendor.bundle.js?f24695780b695904f509:1
_performComponentUpdate @ vendor.bundle.js?f24695780b695904f509:1
updateComponent @ vendor.bundle.js?f24695780b695904f509:1
receiveComponent @ vendor.bundle.js?f24695780b695904f509:1
receiveComponent @ vendor.bundle.js?f24695780b695904f509:1
_updateRenderedComponent @ vendor.bundle.js?f24695780b695904f509:1
_performComponentUpdate @ vendor.bundle.js?f24695780b695904f509:1
updateComponent @ vendor.bundle.js?f24695780b695904f509:1
receiveComponent @ vendor.bundle.js?f24695780b695904f509:1
receiveComponent @ vendor.bundle.js?f24695780b695904f509:1
_updateRenderedComponent @ vendor.bundle.js?f24695780b695904f509:1
_performComponentUpdate @ vendor.bundle.js?f24695780b695904f509:1
updateComponent @ vendor.bundle.js?f24695780b695904f509:1
receiveComponent @ vendor.bundle.js?f24695780b695904f509:1
receiveComponent @ vendor.bundle.js?f24695780b695904f509:1
_updateRenderedComponent @ vendor.bundle.js?f24695780b695904f509:1
_performComponentUpdate @ vendor.bundle.js?f24695780b695904f509:1
updateComponent @ vendor.bundle.js?f24695780b695904f509:1
receiveComponent @ vendor.bundle.js?f24695780b695904f509:1
receiveComponent @ vendor.bundle.js?f24695780b695904f509:1
_updateRenderedComponent @ vendor.bundle.js?f24695780b695904f509:1
_performComponentUpdate @ vendor.bundle.js?f24695780b695904f509:1
updateComponent @ vendor.bundle.js?f24695780b695904f509:1
receiveComponent @ vendor.bundle.js?f24695780b695904f509:1
receiveComponent @ vendor.bundle.js?f24695780b695904f509:1
_updateRenderedComponent @ vendor.bundle.js?f24695780b695904f509:1
_performComponentUpdate @ vendor.bundle.js?f24695780b695904f509:1
updateComponent @ vendor.bundle.js?f24695780b695904f509:1
receiveComponent @ vendor.bundle.js?f24695780b695904f509:1
receiveComponent @ vendor.bundle.js?f24695780b695904f509:1
_updateRenderedComponent @ vendor.bundle.js?f24695780b695904f509:1
_performComponentUpdate @ vendor.bundle.js?f24695780b695904f509:1
updateComponent @ vendor.bundle.js?f24695780b695904f509:1
receiveComponent @ vendor.bundle.js?f24695780b695904f509:1
receiveComponent @ vendor.bundle.js?f24695780b695904f509:1
_updateRenderedComponent @ vendor.bundle.js?f24695780b695904f509:1
_performComponentUpdate @ vendor.bundle.js?f24695780b695904f509:1
updateComponent @ vendor.bundle.js?f24695780b695904f509:1
receiveComponent @ vendor.bundle.js?f24695780b695904f509:1
receiveComponent @ vendor.bundle.js?f24695780b695904f509:1
_updateRenderedComponent @ vendor.bundle.js?f24695780b695904f509:1
_performComponentUpdate @ vendor.bundle.js?f24695780b695904f509:1
updateComponent @ vendor.bundle.js?f24695780b695904f509:1
receiveComponent @ vendor.bundle.js?f24695780b695904f509:1
receiveComponent @ vendor.bundle.js?f24695780b695904f509:1
updateChildren @ vendor.bundle.js?f24695780b695904f509:1
_reconcilerUpdateChildren @ vendor.bundle.js?f24695780b695904f509:1
_updateChildren @ vendor.bundle.js?f24695780b695904f509:1
updateChildren @ vendor.bundle.js?f24695780b695904f509:1
_updateDOMChildren @ vendor.bundle.js?f24695780b695904f509:1
updateComponent @ vendor.bundle.js?f24695780b695904f509:1
receiveComponent @ vendor.bundle.js?f24695780b695904f509:1
receiveComponent @ vendor.bundle.js?f24695780b695904f509:1
_updateRenderedComponent @ vendor.bundle.js?f24695780b695904f509:1
_performComponentUpdate @ vendor.bundle.js?f24695780b695904f509:1
updateComponent @ vendor.bundle.js?f24695780b695904f509:1
receiveComponent @ vendor.bundle.js?f24695780b695904f509:1
receiveComponent @ vendor.bundle.js?f24695780b695904f509:1
_updateRenderedComponent @ vendor.bundle.js?f24695780b695904f509:1
_performComponentUpdate @ vendor.bundle.js?f24695780b695904f509:1
updateComponent @ vendor.bundle.js?f24695780b695904f509:1
receiveComponent @ vendor.bundle.js?f24695780b695904f509:1
receiveComponent @ vendor.bundle.js?f24695780b695904f509:1
_updateRenderedComponent @ vendor.bundle.js?f24695780b695904f509:1
_performComponentUpdate @ vendor.bundle.js?f24695780b695904f509:1
updateComponent @ vendor.bundle.js?f24695780b695904f509:1
receiveComponent @ vendor.bundle.js?f24695780b695904f509:1
receiveComponent @ vendor.bundle.js?f24695780b695904f509:1
_updateRenderedComponent @ vendor.bundle.js?f24695780b695904f509:1
_performComponentUpdate @ vendor.bundle.js?f24695780b695904f509:1
updateComponent @ vendor.bundle.js?f24695780b695904f509:1
receiveComponent @ vendor.bundle.js?f24695780b695904f509:1
receiveComponent @ vendor.bundle.js?f24695780b695904f509:1
_updateRenderedComponent @ vendor.bundle.js?f24695780b695904f509:1
_performComponentUpdate @ vendor.bundle.js?f24695780b695904f509:1
updateComponent @ vendor.bundle.js?f24695780b695904f509:1
receiveComponent @ vendor.bundle.js?f24695780b695904f509:1
receiveComponent @ vendor.bundle.js?f24695780b695904f509:1
_updateRenderedComponent @ vendor.bundle.js?f24695780b695904f509:1
_performComponentUpdate @ vendor.bundle.js?f24695780b695904f509:1
updateComponent @ vendor.bundle.js?f24695780b695904f509:1
receiveComponent @ vendor.bundle.js?f24695780b695904f509:1
receiveComponent @ vendor.bundle.js?f24695780b695904f509:1
_updateRenderedComponent @ vendor.bundle.js?f24695780b695904f509:1
_performComponentUpdate @ vendor.bundle.js?f24695780b695904f509:1
updateComponent @ vendor.bundle.js?f24695780b695904f509:1
performUpdateIfNecessary @ vendor.bundle.js?f24695780b695904f509:1
performUpdateIfNecessary @ vendor.bundle.js?f24695780b695904f509:1
b @ vendor.bundle.js?f24695780b695904f509:1
perform @ vendor.bundle.js?f24695780b695904f509:1
perform @ vendor.bundle.js?f24695780b695904f509:1
perform @ vendor.bundle.js?f24695780b695904f509:1
M @ vendor.bundle.js?f24695780b695904f509:1
closeAll @ vendor.bundle.js?f24695780b695904f509:1
perform @ vendor.bundle.js?f24695780b695904f509:1
batchedUpdates @ vendor.bundle.js?f24695780b695904f509:1
batchedUpdates @ vendor.bundle.js?f24695780b695904f509:1
dispatchEvent @ vendor.bundle.js?f24695780b695904f509:1
vendor.bundle.js?f24695780b695904f509:1 Uncaught (in promise) TypeError: Cannot read property ‘getHostNode’ of null
at Object.getHostNode (vendor.bundle.js?f24695780b695904f509:1)
at c.getHostNode (vendor.bundle.js?f24695780b695904f509:1)
at Object.getHostNode (vendor.bundle.js?f24695780b695904f509:1)
at Object.updateChildren (vendor.bundle.js?f24695780b695904f509:1)
at Z._reconcilerUpdateChildren (vendor.bundle.js?f24695780b695904f509:1)
at Z._updateChildren (vendor.bundle.js?f24695780b695904f509:1)
at Z.updateChildren (vendor.bundle.js?f24695780b695904f509:1)
at Z._updateDOMChildren (vendor.bundle.js?f24695780b695904f509:1)
at Z.updateComponent (vendor.bundle.js?f24695780b695904f509:1)
at Z.receiveComponent (vendor.bundle.js?f24695780b695904f509:1)
getHostNode @ vendor.bundle.js?f24695780b695904f509:1
getHostNode @ vendor.bundle.js?f24695780b695904f509:1
getHostNode @ vendor.bundle.js?f24695780b695904f509:1
updateChildren @ vendor.bundle.js?f24695780b695904f509:1
_reconcilerUpdateChildren @ vendor.bundle.js?f24695780b695904f509:1
_updateChildren @ vendor.bundle.js?f24695780b695904f509:1
updateChildren @ vendor.bundle.js?f24695780b695904f509:1
_updateDOMChildren @ vendor.bundle.js?f24695780b695904f509:1
updateComponent @ vendor.bundle.js?f24695780b695904f509:1
receiveComponent @ vendor.bundle.js?f24695780b695904f509:1
receiveComponent @ vendor.bundle.js?f24695780b695904f509:1
_updateRenderedComponent @ vendor.bundle.js?f24695780b695904f509:1
_performComponentUpdate @ vendor.bundle.js?f24695780b695904f509:1
updateComponent @ vendor.bundle.js?f24695780b695904f509:1
receiveComponent @ vendor.bundle.js?f24695780b695904f509:1
receiveComponent @ vendor.bundle.js?f24695780b695904f509:1
_updateRenderedComponent @ vendor.bundle.js?f24695780b695904f509:1
_performComponentUpdate @ vendor.bundle.js?f24695780b695904f509:1
updateComponent @ vendor.bundle.js?f24695780b695904f509:1
performUpdateIfNecessary @ vendor.bundle.js?f24695780b695904f509:1
performUpdateIfNecessary @ vendor.bundle.js?f24695780b695904f509:1
b @ vendor.bundle.js?f24695780b695904f509:1
perform @ vendor.bundle.js?f24695780b695904f509:1
perform @ vendor.bundle.js?f24695780b695904f509:1
perform @ vendor.bundle.js?f24695780b695904f509:1
M @ vendor.bundle.js?f24695780b695904f509:1
close @ vendor.bundle.js?f24695780b695904f509:1
closeAll @ vendor.bundle.js?f24695780b695904f509:1
perform @ vendor.bundle.js?f24695780b695904f509:1
perform @ vendor.bundle.js?f24695780b695904f509:1
M @ vendor.bundle.js?f24695780b695904f509:1
closeAll @ vendor.bundle.js?f24695780b695904f509:1
perform @ vendor.bundle.js?f24695780b695904f509:1
batchedUpdates @ vendor.bundle.js?f24695780b695904f509:1
e @ vendor.bundle.js?f24695780b695904f509:1
a @ vendor.bundle.js?f24695780b695904f509:1
enqueueSetState @ vendor.bundle.js?f24695780b695904f509:1
s.setState @ vendor.bundle.js?f24695780b695904f509:1
i.onStateChange @ vendor.bundle.js?f24695780b695904f509:1
notify @ vendor.bundle.js?f24695780b695904f509:1
e.notifyNestedSubs @ vendor.bundle.js?f24695780b695904f509:1
i.onStateChange @ vendor.bundle.js?f24695780b695904f509:1
g @ vendor.bundle.js?f24695780b695904f509:1
(anonymous) @ vendor.bundle.js?f24695780b695904f509:1
(anonymous) @ vendor.bundle.js?f24695780b695904f509:1
(anonymous) @ app-main.bundle.js?f24695780b695904f509:5
dispatch @ vendor.bundle.js?f24695780b695904f509:1
(anonymous) @ app-main.bundle.js?f24695780b695904f509:5
u @ vendor.bundle.js?f24695780b695904f509:1
g._invoke @ vendor.bundle.js?f24695780b695904f509:1
e. @ vendor.bundle.js?f24695780b695904f509:1
r @ app-main.bundle.js?f24695780b695904f509:5
(anonymous) @ app-main.bundle.js?f24695780b695904f509:5
Promise.then (async)
r @ app-main.bundle.js?f24695780b695904f509:5
(anonymous) @ app-main.bundle.js?f24695780b695904f509:5
(anonymous) @ app-main.bundle.js?f24695780b695904f509:5
a.type @ app-main.bundle.js?f24695780b695904f509:5
(anonymous) @ app-main.bundle.js?f24695780b695904f509:5
(anonymous) @ vendor.bundle.js?f24695780b695904f509:1
a @ app-main.bundle.js?f24695780b695904f509:5
onChange @ app-main.bundle.js?f24695780b695904f509:5
onClick @ app-main.bundle.js?f24695780b695904f509:5
i @ vendor.bundle.js?f24695780b695904f509:1
s @ vendor.bundle.js?f24695780b695904f509:1
executeDispatchesInOrder @ vendor.bundle.js?f24695780b695904f509:1
d @ vendor.bundle.js?f24695780b695904f509:1
f @ vendor.bundle.js?f24695780b695904f509:1
e.exports @ vendor.bundle.js?f24695780b695904f509:1
processEventQueue @ vendor.bundle.js?f24695780b695904f509:1
handleTopLevel @ vendor.bundle.js?f24695780b695904f509:1
f @ vendor.bundle.js?f24695780b695904f509:1
perform @ vendor.bundle.js?f24695780b695904f509:1
batchedUpdates @ vendor.bundle.js?f24695780b695904f509:1
batchedUpdates @ vendor.bundle.js?f24695780b695904f509:1
dispatchEvent @ vendor.bundle.js?f24695780b695904f509:1
troubleshooting details from console:
{
“browser-info”: {
“language”: “en-US”,
“platform”: “Linux x86_64”,
“userAgent”: “Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.92 Safari/537.36”,
“vendor”: “Google Inc.”
},
“system-info”: {
“file.encoding”: “UTF-8”,
“java.runtime.name”: “OpenJDK Runtime Environment”,
“java.runtime.version”: “1.8.0_242-8u242-b08-0ubuntu3~18.04-b08”,
“java.vendor”: “Private Build”,
“java.vendor.url”: “http://java.oracle.com/”,
“java.version”: “1.8.0_242”,
“java.vm.name”: “OpenJDK 64-Bit Server VM”,
“java.vm.version”: “25.242-b08”,
“os.name”: “Linux”,
“os.version”: “4.15.0-1065-aws”,
“user.language”: “en”,
“user.timezone”: “Etc/UTC”
},
“metabase-info”: {
“databases”: [
“mysql”,
“h2”
],
“hosting-env”: “unknown”,
“application-database”: “h2”,
“application-database-details”: {
“database”: {
“name”: “H2”,
“version”: “1.4.197 (2018-03-18)”
},
“jdbc-driver”: {
“name”: “H2 JDBC Driver”,
“version”: “1.4.197 (2018-03-18)”
}
},
“run-mode”: “prod”,
“version”: {
“tag”: “v0.35.3”,
“date”: “2020-04-21”,
“branch”: “release-0.35.x”,
“hash”: “1d424cb”
},
“settings”: {
“report-timezone”: “US/Pacific”
}
}
}