fix: don't crash on 404, add sync debug logging
ProjectKey.fetch_key now returns empty defaults instead of raising RuntimeError on API errors. Added logging to _syncFromSource and fetch_key to trace the seq=4001 vs seq=4 mismatch. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
+10
-1
@@ -264,10 +264,19 @@ class ProjectKey:
|
||||
file_name="", sequence_number=1):
|
||||
# source_label is used by JS to identify which ProjectSource to sync
|
||||
# config from. The actual config arrives via the optional widgets below.
|
||||
logger.info("ProjectKey.fetch_key: source=%s key=%s url=%s project=%s file=%s seq=%s",
|
||||
source_label, key_name, manager_url, project_name, file_name, sequence_number)
|
||||
data = _fetch_data(manager_url, project_name, file_name, sequence_number)
|
||||
if data.get("error") in ("http_error", "network_error", "parse_error"):
|
||||
msg = data.get("message", "Unknown error")
|
||||
raise RuntimeError(f"Failed to fetch data: {msg}")
|
||||
logger.warning("ProjectKey.fetch_key failed: %s", msg)
|
||||
# Return empty/default instead of crashing the workflow
|
||||
if key_type == "INT":
|
||||
return (0,)
|
||||
elif key_type == "FLOAT":
|
||||
return (0.0,)
|
||||
else:
|
||||
return ("",)
|
||||
|
||||
val = data.get(key_name, "")
|
||||
|
||||
|
||||
+8
-2
@@ -121,11 +121,17 @@ app.registerExtension({
|
||||
nodeType.prototype._syncFromSource = function () {
|
||||
const srcWidget = this.widgets?.find(w => w.name === "source_label");
|
||||
const source = this._findSource(srcWidget?.value);
|
||||
if (!source) return;
|
||||
if (!source) {
|
||||
console.log(`[ProjectKey] _syncFromSource id=${this.id}: no source found for label="${srcWidget?.value}"`);
|
||||
return;
|
||||
}
|
||||
for (const name of ["manager_url", "project_name", "file_name", "sequence_number"]) {
|
||||
const dst = this.widgets?.find(w => w.name === name);
|
||||
const src = source.widgets?.find(w => w.name === name);
|
||||
if (dst && src) dst.value = src.value;
|
||||
if (dst && src) {
|
||||
dst.value = src.value;
|
||||
console.log(`[ProjectKey] _syncFromSource id=${this.id}: ${name}="${src.value}"`);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user