siyuan-note/siyuan · error

invalid profiles

Error message

invalid profiles

What it means

Thrown when normalization yields zero importable profiles: every item passed to normalizeEntryVisibilityImportProfile returned null (invalid entries, unknown order keys, or version-mismatched content), so importedCount stayed 0. The file has the right type/version envelope but contains no usable profile data.

Solutions

  1. Inspect the profiles array in the file for malformed entries
  2. Re-export the profile from a matching SiYuan version
  3. Import a single-profile file instead of a bundle if individual entries are corrupt
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at app/src/config/entryVisibility/ui.ts:928 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of siyuan-note/siyuan@9f775e8a12 (2026-09-19). Data as JSON: /api/errors/30de22ad87d0d133. Report an issue: GitHub.

Appendix: source

Thrown at app/src/config/entryVisibility/ui.ts:928

            throw new Error("invalid type");
        }
        const config = cloneConfig();
        let importedCount = 0;
        imported.forEach((item) => {
            const profile = normalizeEntryVisibilityImportProfile(item, data.version, createEntryOrderSnapshot());
            if (!profile) {
                return;
            }
            config.profiles.push({
                id: genUUID(),
                name: uniqueName(profile.name, config.profiles),
                entries: profile.entries,
                orders: profile.orders,
            });
            importedCount++;
        });
        if (imported.length > 0 && importedCount === 0) {
            throw new Error("invalid profiles");
        }
        saveEntryVisibility(config);
        renderProfileCards(root);
        showMessage(window.siyuan.languages.imported);
    } catch (error) {
        console.warn("import entry visibility profile failed", error);
        showMessage(window.siyuan.languages.entryImportInvalid, 6000, "error");
    }
};

export const genEntryVisibilityHtml = () => `<div class="b3-label config-item" data-type="entry-visibility">
    <div class="fn__flex">
        <div><div class="config-name">${window.siyuan.languages.entryVisibility}</div><div class="b3-label__text">${isMobile() ? window.siyuan.languages.mobileToolbarEntryTip : window.siyuan.languages.entryVisibilityTip}</div></div>
        <span class="fn__space fn__flex-1"></span>
        ${getHostCapabilities().importExport ? `<button class="b3-button b3-button--outline" data-action="import"><svg class="b3-button__icon"><use xlink:href="#iconDownload"></use></svg>${window.siyuan.languages.import}</button>
        <span class="fn__space"></span>
        <button class="b3-button b3-button--outline" data-action="export-all"><svg class="b3-button__icon"><use xlink:href="#iconUpload"></use></svg>${window.siyuan.languages.export}</button>
        <span class="fn__space"></span>` : ""}

View on GitHub (pinned to 9f775e8a12)