allow say verb failed as NonFatalTaskError for File Not Found (#1443)

* allow say verb failed as NonFatalTaskError for File Not Found

* wip
This commit is contained in:
Hoan Luu Huu
2025-11-20 19:22:28 +07:00
committed by GitHub
parent 769b66f57e
commit 1984b6d3ea
2 changed files with 18 additions and 6 deletions

View File

@@ -2,8 +2,9 @@ const assert = require('assert');
const TtsTask = require('./tts-task'); const TtsTask = require('./tts-task');
const {TaskName, TaskPreconditions} = require('../utils/constants'); const {TaskName, TaskPreconditions} = require('../utils/constants');
const pollySSMLSplit = require('polly-ssml-split'); const pollySSMLSplit = require('polly-ssml-split');
const { SpeechCredentialError } = require('../utils/error'); const { SpeechCredentialError, NonFatalTaskError } = require('../utils/error');
const { sleepFor } = require('../utils/helpers'); const { sleepFor } = require('../utils/helpers');
const { NON_FANTAL_ERRORS } = require('../utils/constants.json');
/** /**
* Discard unmatching responses: * Discard unmatching responses:
@@ -402,11 +403,19 @@ class TaskSay extends TtsTask {
this._playResolve = resolve; this._playResolve = resolve;
this._playReject = reject; this._playReject = reject;
}); });
try {
const r = await ep.play(filename); const r = await ep.play(filename);
this.logger.debug({r}, 'Say:exec play result'); this.logger.debug({r}, 'Say:exec play result');
if (r.playbackSeconds == null && r.playbackMilliseconds == null && r.playbackLastOffsetPos == null) { if (r.playbackSeconds == null && r.playbackMilliseconds == null && r.playbackLastOffsetPos == null) {
this._playReject(new Error('Playback failed to start')); this._playReject(new Error('Playback failed to start'));
} }
} catch (err) {
if (NON_FANTAL_ERRORS.includes(err.message)) {
throw new NonFatalTaskError(err.message);
}
throw err;
}
try { try {
// wait for playback-stop event received to confirm if the playback is successful // wait for playback-stop event received to confirm if the playback is successful
await this._playPromise; await this._playPromise;

View File

@@ -356,5 +356,8 @@
"WS_CLOSE_CODES": { "WS_CLOSE_CODES": {
"NormalClosure": 1000, "NormalClosure": 1000,
"GoingAway": 1001 "GoingAway": 1001
} },
"NON_FANTAL_ERRORS": [
"File Not Found"
]
} }