handle error codes
This commit is contained in:
parent
d7c155aa52
commit
fdbde085a3
2 changed files with 67 additions and 9 deletions
|
|
@ -380,14 +380,31 @@ module.exports = async (
|
|||
const walletStatus = await walletExists()
|
||||
const availableService = await getAvailableService()
|
||||
const statusMessage = availableService.walletStatus
|
||||
if (availableService.code === 12) {
|
||||
return res.status(401).json({
|
||||
field: 'lnd_locked',
|
||||
errorMessage: availableService.message
|
||||
? availableService.message
|
||||
: 'unknown'
|
||||
})
|
||||
}
|
||||
if (availableService.code === 14) {
|
||||
return res.status(401).json({
|
||||
field: 'lnd_dead',
|
||||
errorMessage: availableService.message
|
||||
? availableService.message
|
||||
: 'unknown'
|
||||
})
|
||||
}
|
||||
if (walletStatus) {
|
||||
if (statusMessage === 'unlocked') {
|
||||
return next()
|
||||
}
|
||||
|
||||
return res.status(401).json({
|
||||
field: 'wallet',
|
||||
errorMessage: statusMessage ? statusMessage : 'unknown'
|
||||
errorMessage: availableService.message
|
||||
? availableService.message
|
||||
: 'unknown'
|
||||
})
|
||||
}
|
||||
|
||||
|
|
@ -399,6 +416,18 @@ module.exports = async (
|
|||
next()
|
||||
} catch (err) {
|
||||
logger.error(err)
|
||||
if (err.code === 12) {
|
||||
return res.status(401).json({
|
||||
field: 'lnd_locked',
|
||||
errorMessage: err.message ? err.message : 'unknown'
|
||||
})
|
||||
}
|
||||
if (err.code === 14) {
|
||||
return res.status(401).json({
|
||||
field: 'lnd_dead',
|
||||
errorMessage: err.message ? err.message : 'unknown'
|
||||
})
|
||||
}
|
||||
res.status(500).json({
|
||||
field: 'wallet',
|
||||
errorMessage: err.message ? err.message : err
|
||||
|
|
@ -602,17 +631,46 @@ module.exports = async (
|
|||
stream.on('end', () => {
|
||||
logger.info('Channel backup stream ended, starting a new one...')
|
||||
// Prevents call stack overflow exceptions
|
||||
process.nextTick(onNewChannelBackup)
|
||||
//process.nextTick(onNewChannelBackup)
|
||||
})
|
||||
stream.on('error', err => {
|
||||
logger.error('Channel backup stream error:', err)
|
||||
})
|
||||
stream.on('status', status => {
|
||||
if (status.code === 14) {
|
||||
// Prevents call stack overflow exceptions
|
||||
process.nextTick(() => setTimeout(onNewChannelBackup, 30000))
|
||||
} else {
|
||||
logger.error('Channel backup stream status:', status)
|
||||
logger.error('Channel backup stream status:', status)
|
||||
switch (status.code) {
|
||||
case 0: {
|
||||
logger.info('Channel backup stream ok')
|
||||
break
|
||||
}
|
||||
case 2: {
|
||||
//Happens to fire when the grpc client lose access to macaroon file
|
||||
logger.warn('Channel backup got UNKNOWN error status')
|
||||
break
|
||||
}
|
||||
case 12: {
|
||||
logger.warn(
|
||||
'Channel backup LND locked, new registration in 60 seconds'
|
||||
)
|
||||
process.nextTick(() =>
|
||||
setTimeout(() => onNewTransaction(socket, subID), 60000)
|
||||
)
|
||||
break
|
||||
}
|
||||
case 13: {
|
||||
//https://grpc.github.io/grpc/core/md_doc_statuscodes.html
|
||||
logger.error('Channel backup INTERNAL LND error')
|
||||
break
|
||||
}
|
||||
case 14: {
|
||||
logger.error(
|
||||
'Channel backup LND disconnected, sockets reconnecting in 30 seconds...'
|
||||
)
|
||||
process.nextTick(() =>
|
||||
setTimeout(() => onNewTransaction(socket, subID), 30000)
|
||||
)
|
||||
break
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
|
|
|||
|
|
@ -107,7 +107,7 @@ class LNDErrorManager {
|
|||
this._healthListeners.length = 0
|
||||
this._isCheckingHealth = false
|
||||
}
|
||||
const deadline = Date.now() + 2000
|
||||
const deadline = Date.now() + 4000
|
||||
lightning.getInfo({},{deadline}, callback)
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue