Open 2600box opened 3 weeks ago
Hi, thanks for positng the issue! Hopefully, we can figure out a solution. If possible, can you provide the following:
mongosh
to connect to the mongo database, you can then do something like the following:
# Use games database
use games
db.game.find({releaseIds: []}).count()
db.game.find({releaseIds: []})
For any of the games that may come back from the above, please cross reference them in Playnite and let me know what Platform and Source (library source) they are considered.
If you are not familiar or comfortable with this, then another alternative would be to provide all library sources in your Playnite library. Playnite Web ignores unknown platforms (to it) and I haven't yet supported all known platforms from Playnite. I'm happy to add them once I know what they are. Thanks!
Those commands do not return any results, not sure if there is some other variation to try?
The sources I have are Amazon, EA app, Epic, GOG, itch.io, RomM, Steam, Ubisoft Connect.
RomM is obviously the odd one out.
docker:~/playnite-web$ docker exec -it playnite-web-mongo_db-1 mongosh
Current Mongosh Log ID: 672dfa0d944d8df02ea02dd6
Connecting to: mongodb://127.0.0.1:27017/?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+1.6.2
Using MongoDB: 6.0.4
Using Mongosh: 1.6.2
For mongosh info see: https://docs.mongodb.com/mongodb-shell/
To help improve our products, anonymous usage data is collected and sent to MongoDB periodically (https://www.mongodb.com/legal/privacy-policy).
You can opt-out by running the disableTelemetry() command.
------
The server generated these startup warnings when booting
2024-11-04T21:46:27.939+00:00: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine. See http://dochub.mongodb.org/core/prodnotes-filesystem
2024-11-04T21:46:30.333+00:00: Access control is not enabled for the database. Read and write access to data and configuration is unrestricted
2024-11-04T21:46:30.333+00:00: vm.max_map_count is too low
------
------
Enable MongoDB's free cloud-based monitoring service, which will then receive and display
metrics about your deployment (disk utilization, CPU, operation statistics, etc).
The monitoring data will be available on a MongoDB website with a unique URL accessible to you
and anyone you share the URL with. MongoDB may use this information to make product
improvements and to suggest MongoDB products and deployment options to you.
To enable free monitoring, run the following command: db.enableFreeMonitoring()
To permanently disable this reminder, run the following command: db.disableFreeMonitoring()
------
test> use games
switched to db games
games> db.game.find({ releaseIds: [] }).count()
0
games> db.game.find({ releaseIds: [] }).pretty()
games> db.game.find({releaseIds: []}).count()
0
games> db.game.find({releaseIds: []})
games> db.game.aggregate([
... { $unwind: "$releaseIds" },
... { $count: "totalReleaseIds" }
... ])
[ { totalReleaseIds: 683 } ]
games>
For what it is worth, playnite reports a total of 1089 games, in contrast to the 683 listed in mongodb.
The platforms listed in Playnite are Macintosh, Nintendo GameCube, PC (Linux), PC (Windows).
playnite_web_app-1 | GraphQLWsLink connected
playnite_web_app-1 | ERR Error: Cannot return null for non-nullable field Game.releases.
playnite_web_app-1 | at h6 (/opt/playnite-web-app/server.production.js:372:34675)
playnite_web_app-1 | at GE1 (/opt/playnite-web-app/server.production.js:372:36429)
playnite_web_app-1 | at vlc (/opt/playnite-web-app/server.production.js:372:36284)
playnite_web_app-1 | at h6 (/opt/playnite-web-app/server.production.js:372:34830)
playnite_web_app-1 | at h6 (/opt/playnite-web-app/server.production.js:372:34632)
playnite_web_app-1 | at /opt/playnite-web-app/server.production.js:372:34022
playnite_web_app-1 | at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
playnite_web_app-1 | at async /opt/playnite-web-app/server.production.js:372:30183
playnite_web_app-1 | at async Promise.all (index 4) {
playnite_web_app-1 | path: [ 'games', 154, 'releases', 0 ],
playnite_web_app-1 | locations: [ { line: 10, column: 5 } ],
playnite_web_app-1 | extensions: [Object: null prototype] {}
playnite_web_app-1 | }
Please do let me know what other information I can provide. Thanks
RomM is problably the issue as it needs to be supported by Playnite Web. I have an open PR to add its support. You can track it here: #613 . Once merged, I'll cut a new release and you can verify if, at least, RomM releases show up in the db.release
collection. Please do drop the database before syncing.
It is unclear whether this is the only issue, so please report back if:
db.release
collection andThanks!
I tried the latest plugin and docker image, same result.
I don't follow your last message regarding "RomM games show up in the db.release collection". Where would I check for this?
Thanks
playnite_web_app-1 | 2024-11-09T07:35:56.621Z playnite-web/graphql/mongo Existing DB client not found; creating one with the provided URL: mongodb://mongo_db:27017
playnite_web_app-1 | 2024-11-09T07:35:56.622Z playnite-web/graphql/mongo No username or password provided; connecting without auth
playnite_web_app-1 | 2024-11-09T07:35:56.626Z playnite-web/graphql/mongo Connecting database client.
mongo_db-1 | {"t":{"$date":"2024-11-09T07:35:56.637+00:00"},"s":"I", "c":"NETWORK", "id":22943, "ctx":"listener","msg":"Connection accepted","attr":{"remote":"10.10.9.4:51896","uuid":"875e68a7-76ce-4f1c-bda8-43fd7157569a","connectionId":28,"connectionCount":23}}
mongo_db-1 | {"t":{"$date":"2024-11-09T07:35:56.638+00:00"},"s":"I", "c":"NETWORK", "id":51800, "ctx":"conn28","msg":"client metadata","attr":{"remote":"10.10.9.4:51896","client":"conn28","doc":{"driver":{"name":"nodejs","version":"6.8.0"},"platform":"Node.js v22.11.0, LE","os":{"name":"linux","architecture":"x64","version":"5.15.0-124-generic","type":"Linux"},"env":{"container":{"runtime":"docker"}}}}}
mongo_db-1 | {"t":{"$date":"2024-11-09T07:35:56.763+00:00"},"s":"I", "c":"NETWORK", "id":22943, "ctx":"listener","msg":"Connection accepted","attr":{"remote":"10.10.9.4:51900","uuid":"ab0050ce-36f7-47e3-9822-6b2db6226763","connectionId":29,"connectionCount":24}}
mongo_db-1 | {"t":{"$date":"2024-11-09T07:35:56.779+00:00"},"s":"I", "c":"NETWORK", "id":51800, "ctx":"conn29","msg":"client metadata","attr":{"remote":"10.10.9.4:51900","client":"conn29","doc":{"driver":{"name":"nodejs","version":"6.8.0"},"platform":"Node.js v22.11.0, LE","os":{"name":"linux","architecture":"x64","version":"5.15.0-124-generic","type":"Linux"},"env":{"container":{"runtime":"docker"}}}}}
playnite_web_app-1 | GraphQLWsLink connected
playnite_web_app-1 | ERR Error: Cannot return null for non-nullable field Game.releases.
playnite_web_app-1 | at h6 (/opt/playnite-web-app/server.production.js:372:34675)
playnite_web_app-1 | at GE1 (/opt/playnite-web-app/server.production.js:372:36429)
playnite_web_app-1 | at vlc (/opt/playnite-web-app/server.production.js:372:36284)
playnite_web_app-1 | at h6 (/opt/playnite-web-app/server.production.js:372:34830)
playnite_web_app-1 | at h6 (/opt/playnite-web-app/server.production.js:372:34632)
playnite_web_app-1 | at /opt/playnite-web-app/server.production.js:372:34022
playnite_web_app-1 | at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
playnite_web_app-1 | at async /opt/playnite-web-app/server.production.js:372:30183
playnite_web_app-1 | at async Promise.all (index 4) {
playnite_web_app-1 | path: [ 'games', 164, 'releases', 0 ],
playnite_web_app-1 | locations: [ { line: 10, column: 5 } ],
playnite_web_app-1 | extensions: [Object: null prototype] {}
playnite_web_app-1 | }
playnite_web_app-1 | ERR Error: Cannot return null for non-nullable field Game.releases.
playnite_web_app-1 | at h6 (/opt/playnite-web-app/server.production.js:372:34675)
playnite_web_app-1 | at GE1 (/opt/playnite-web-app/server.production.js:372:36429)
playnite_web_app-1 | at vlc (/opt/playnite-web-app/server.production.js:372:36284)
playnite_web_app-1 | at h6 (/opt/playnite-web-app/server.production.js:372:34830)
playnite_web_app-1 | at h6 (/opt/playnite-web-app/server.production.js:372:34632)
playnite_web_app-1 | at /opt/playnite-web-app/server.production.js:372:34022
playnite_web_app-1 | at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
playnite_web_app-1 | at async /opt/playnite-web-app/server.production.js:372:30183
playnite_web_app-1 | at async Promise.all (index 4) {
playnite_web_app-1 | path: [ 'games', 164, 'releases', 0 ],
playnite_web_app-1 | locations: [ { line: 10, column: 5 } ],
playnite_web_app-1 | extensions: [Object: null prototype] {}
playnite_web_app-1 | }
mongo_db-1 | {"t":{"$date":"2024-11-09T07:36:07.143+00:00"},"s":"I", "c":"NETWORK", "id":22943, "ctx":"listener","msg":"Connection accepted","attr":{"remote":"10.10.9.4:45972","uuid":"e8f4ced1-50cb-49e7-b371-bf788bc7dcb3","connectionId":30,"connectionCount":25}}
mongo_db-1 | {"t":{"$date":"2024-11-09T07:36:07.144+00:00"},"s":"I", "c":"NETWORK", "id":51800, "ctx":"conn30","msg":"client metadata","attr":{"remote":"10.10.9.4:45972","client":"conn30","doc":{"driver":{"name":"nodejs","version":"6.8.0"},"platform":"Node.js v22.11.0, LE","os":{"name":"linux","architecture":"x64","version":"5.15.0-124-generic","type":"Linux"},"env":{"container":{"runtime":"docker"}}}}}
mongo_db-1 | {"t":{"$date":"2024-11-09T07:37:21.267+00:00"},"s":"I", "c":"NETWORK", "id":22943, "ctx":"listener","msg":"Connection accepted","attr":{"remote":"127.0.0.1:40664","uuid":"576bfef6-dad3-419f-9676-1ba1e200dac1","connectionId":31,"connectionCount":26}}
mongo_db-1 | {"t":{"$date":"2024-11-09T07:37:21.267+00:00"},"s":"I", "c":"NETWORK", "id":22943, "ctx":"listener","msg":"Connection accepted","attr":{"remote":"127.0.0.1:40672","uuid":"b050358b-829e-42cb-a0dd-b13545a1f057","connectionId":32,"connectionCount":27}}
mongo_db-1 | {"t":{"$date":"2024-11-09T07:37:21.269+00:00"},"s":"I", "c":"NETWORK", "id":51800, "ctx":"conn31","msg":"client metadata","attr":{"remote":"127.0.0.1:40664","client":"conn31","doc":{"driver":{"name":"nodejs|mongosh","version":"4.13.0"},"os":{"type":"Linux","name":"linux","architecture":"x64","version":"5.15.0-124-generic"},"platform":"Node.js v16.19.0, LE (unified)","version":"4.13.0|1.6.2","application":{"name":"mongosh 1.6.2"}}}}
mongo_db-1 | {"t":{"$date":"2024-11-09T07:37:21.270+00:00"},"s":"I", "c":"NETWORK", "id":51800, "ctx":"conn32","msg":"client metadata","attr":{"remote":"127.0.0.1:40672","client":"conn32","doc":{"driver":{"name":"nodejs|mongosh","version":"4.13.0"},"os":{"type":"Linux","name":"linux","architecture":"x64","version":"5.15.0-124-generic"},"platform":"Node.js v16.19.0, LE (unified)","version":"4.13.0|1.6.2","application":{"name":"mongosh 1.6.2"}}}}
sloopbun@docker:~/playnite-web$ docker exec -it playnite-web-mongo_db-1 mongosh
Current Mongosh Log ID: 672f106e0c420bbd75e1ed42
Connecting to: mongodb://127.0.0.1:27017/?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+1.6.2
Using MongoDB: 6.0.4
Using Mongosh: 1.6.2
For mongosh info see: https://docs.mongodb.com/mongodb-shell/
------
The server generated these startup warnings when booting
2024-11-09T07:33:29.385+00:00: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine. See http://dochub.mongodb.org/core/prodnotes-filesystem
2024-11-09T07:33:31.462+00:00: Access control is not enabled for the database. Read and write access to data and configuration is unrestricted
2024-11-09T07:33:31.463+00:00: vm.max_map_count is too low
------
------
Enable MongoDB's free cloud-based monitoring service, which will then receive and display
metrics about your deployment (disk utilization, CPU, operation statistics, etc).
The monitoring data will be available on a MongoDB website with a unique URL accessible to you
and anyone you share the URL with. MongoDB may use this information to make product
improvements and to suggest MongoDB products and deployment options to you.
To enable free monitoring, run the following command: db.enableFreeMonitoring()
To permanently disable this reminder, run the following command: db.disableFreeMonitoring()
------
test> show dbs;
admin 8.00 KiB
config 12.00 KiB
local 8.00 KiB
test> show dbs;
admin 40.00 KiB
config 12.00 KiB
games 2.36 MiB
local 40.00 KiB
test> use games
switched to db games
games> db.game.find({releaseIds: []}).count()
0
games> db.game.find({releaseIds: []})
games>
Hi, sorry for the lack of clarity. There are 2 collections with game information: game and release. The release collection is one to one with Playnite's games and the game collection aggregates games by name across varying platforms.
Can you verify if any of your RomM games from Playnite are in the release database collection? Something like:
use games
db.release.find({ name: "RomM Game Name" })
// or
db.release.find({ id: "Playnite's Game ID" })
Also, can you please provide what sources you have on Playnite Web? I want to ensure the RomM source has been correctly supported by Playnite Web. You can find this information in the source database collection (db.source.find()
).
My suspicion is that either the RomM support I added is incorrect or there is a secondary problem happening. The above information will help me find the next course of action. Thanks!
Hello,
Tried with the latest docker and plugin. Removed old database from docker. Sync runs, but the web interface doesn't show any games. Log shows this
ApolloError: Cannot return null for non-nullable field Game.releases.
Please let me know if I am doing something wrong, or if you need a longer extract from the log, etc.
Thanks!
After first sync:
After second sync: