Error: Dat not ready.
I have the following error message:
Error: Dat not ready.
What does that mean ? How to fix this issue. I have also the following error spawning randomly:
Error: Dat not ready.
at Promise (/usr/lib/node_modules/dat-shell/index.js:119:79)
at new Promise (<anonymous>)
at Object.ls (/usr/lib/node_modules/dat-shell/index.js:118:21)
at REPLServer.eval (/usr/lib/node_modules/dat-shell/index.js:257:37)
at bound (domain.js:301:14)
at REPLServer.runBound [as eval] (domain.js:314:12)
at REPLServer.onLine (repl.js:468:10)
at emitOne (events.js:116:13)
at REPLServer.emit (events.js:211:7)
at REPLServer.Interface._onLine (readline.js:282:10)
dat-shell / $ (node:30946) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 2): Error: Timeout.
(node:30946) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
node v8.9.4 dat-shell v0.5.0
Thanks
How do you launch dat-shell?
Can you try these:
dat-shell dat://ae8c136e04a66451c79325681d4593bc3ce30c8005dfa5fc6001e0898ec4573a/
dat-shell dat://dat-shell-millette.hashbase.io
Both should open the same content.
Perhaps the dat is unreachable?
I've updated to node v9.3.0 and now the demo data is working as expected. (it displayed my local root ls before)
However I have the same issue with my dat:
Error: Dat not ready.
at Promise (/home/ipfsnode/.nvm/versions/node/v9.3.0/lib/node_modules/dat-shell/index.js:119:79)
at new Promise (<anonymous>)
at Object.ls (/home/ipfsnode/.nvm/versions/node/v9.3.0/lib/node_modules/dat-shell/index.js:118:21)
at REPLServer.eval (/home/ipfsnode/.nvm/versions/node/v9.3.0/lib/node_modules/dat-shell/index.js:257:37)
at bound (domain.js:370:14)
at REPLServer.runBound [as eval] (domain.js:383:12)
at REPLServer.onLine (repl.js:493:10)
at REPLServer.emit (events.js:159:13)
at REPLServer.Interface._onLine (readline.js:287:10)
at REPLServer.Interface._line (readline.js:642:8)
The dat is reachable because "dat log dat://..." is working
...
Log synced with network
Archive has 32816 changes (puts: +20, dels: -0)
Current Size: 0 B
Total Size:
- Metadata 542 MB
- Content 0 B
Blocks:
- Metadata 32817
- Content 0
Maybe the dat is too big for dat-shell
It's working fine with node 8.9.x for me. Can you share the dat you're testing with? [email protected] if you want to keep it private.
It could be that dat-shell is timing out too early. But otherwise, size shouldn't matter, since dat-shell doesn't download actual content, only meta-data.
Testing now with a 10-minute timeout to see what happens with a large dat. Bad news is the process is taking 100% cpu and has been for a few minutes, and the cli is frozen.
I'm going to make error handling a lot more sturdy and will try to come up with a solution in the next few days.
i've had a similar experience when running just dat-shell without argument:
$ dat-shell
dat-shell v0.6.0
Dat shell. Open a remote dat and explore with cd, ls, etc.
cwd: /
Available commands:
.help: Internal repl commands.
help: List of commands and their descriptions.
ln: Pseudo symbolic link (mkfifo).
cp: Copy a file from remote dat to local filesystem.
cat: View a file (concatenate).
ls: List files.
file: Detect mimetype.
view: Generic view command (text, markdown, html, etc.).
sl: Train yourself to avoid typos.
cd: Change directory.
pwd: Output current working directory.
dat: dat -c to close; dat <KEY> to open; dat to output current key.
state: Output current state.
version: Current dat-shell version.
quit: Exit dat-shell (or CTRL-D).
exit: Exit dat-shell (or CTRL-D).
dat-shell / $ ls ff8e8993826467c3e1a9a91bc8c598a631fa54a40ab6a487c0cb48e505f91924
Error: Dat not ready.
at Promise (/usr/local/lib/node_modules/dat-shell/index.js:114:79)
at new Promise (<anonymous>)
at Object.ls (/usr/local/lib/node_modules/dat-shell/index.js:113:21)
at REPLServer.eval (/usr/local/lib/node_modules/dat-shell/index.js:258:37)
at bound (domain.js:301:14)
at REPLServer.runBound [as eval] (domain.js:314:12)
at REPLServer.onLine (repl.js:468:10)
at emitOne (events.js:116:13)
at REPLServer.emit (events.js:211:7)
at REPLServer.Interface._onLine (readline.js:280:10)
I naively thought ls could take a dat address directly without having first to "connect" to a blob...