Analyze SQL Server Setup Bootstrap log files to diagnose failed installations, failed Cumulative Update or Service Pack patching, failed cluster node operations, and risky setup-time configuration. Parses Summary.txt, Detail.txt, MSI/MSP logs, ConfigurationFile.ini, and SystemConfigurationCheck_Report content from the Setup Bootstrap Log folder. Applies 24 checks (U1–U24) covering final-result failure and exit-code extraction, failed setup rules (pending reboot, disk space, account permissions, prerequisites, cluster rules), Detail.txt exception forensics, MSI "Return value 3" patterns, and ConfigurationFile.ini review (service accounts, instant file initialization, TempDB layout, mixed authentication, feature sprawl, directory placement). Use this skill whenever SQL Server setup, an in-place upgrade, a patch, or add/remove node fails, or when a user pastes Summary.txt, Detail.txt, or ConfigurationFile.ini content.
How this skill is triggered — by the user, by Claude, or both
Slash command
/mssql-performance-skills:sqlbootstraplog-reviewThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Analyze SQL Server Setup Bootstrap log artifacts to find why an installation, upgrade,
Analyze SQL Server Setup Bootstrap log artifacts to find why an installation, upgrade, patch (CU/SP), repair, or cluster node operation failed — and to flag risky setup-time configuration before it becomes production drift. Applies 24 checks (U1–U24) across four categories:
Setup runs three phases — (1) Global Rules verification, (2) Component update,
(3) the user-requested action — and writes a dated log folder per run. This skill is the
installation-layer counterpart to sqlerrorlog-review (runtime) and sqldbconfig-review
(post-install drift).
Accept any of:
Summary_<MachineName>_<yyyyMMdd_HHmmss>.txt — overall result, machine
properties, discovered features, user input settings, detailed per-feature results,
rules with failures or warnings<Feature>_<Architecture>_<Interaction>.log) — msiexec package logs%temp%\sqlsetup*.log — logs from unattended-mode runs%programfiles%\Microsoft SQL Server\<nnn>\Setup Bootstrap\Log\ <- Summary.txt
%programfiles%\Microsoft SQL Server\<nnn>\Setup Bootstrap\Log\<yyyyMMdd_HHmmss>\
Summary_<MachineName>_<yyyyMMdd_HHmmss>.txt
Detail.txt
ConfigurationFile.ini
SystemConfigurationCheck_Report.htm
<Name>.log <- MSI/MSP logs
Datastore\ <- XML state snapshots per execution phase
MSSQLSERVER\ ... <- per-instance subfolders when patching
<nnn> matches the version being installed: 130 = SQL 2016, 140 = SQL 2017,
150 = SQL 2019, 160 = SQL 2022. All files in a log folder are archived into Log*.cab.
Unattended-mode logs land in %temp%\sqlsetup*.log.
Before installing or patching, run scripts/check-pending-reboot.ps1
to detect the pending-reboot conditions that fail Setup's "Restart computer" rule (U7) —
Component Based Servicing, Windows Update, PendingFileRenameOperations, pending computer
rename, and the ConfigMgr client signal. Exit code 0 = clear, 1 = reboot pending. See
scripts/README.md for usage.
Final result:, Exit code (Decimal):,
Requested action:, Detailed results: (per-feature Status: / Component error code: /
Error description:), and Rules with failures or warnings:.User Input Settings: section of
the Summary (the same parameters appear in both).Final result: with Failed, Cancelled, or
Setup completed with required actions (anything other than Passed)Exit code (Decimal):, Requested action:, and every feature in
Detailed results: whose Status: is not Passed. Report the Error description: and
Component error code: for each failed feature, then continue with U2–U18 to find the
root cause. The Next step for <feature>: lines state Microsoft's recommended recovery
order (resolve, uninstall the feature, rerun setup).Component error code: present in Detailed results: (commonly a
0x84xxxxxx or 0x85xxxxxx setup facility code) or a negative Exit code (Decimal):Error description:, and the
Error help link: URL (it encodes product version and event ID for Microsoft's
troubleshooting lookup). Well-known example: 0x851A001A — "Wait on the Database Engine
recovery handle failed" — means the engine did not start during configuration; the real
cause is in the new instance's ERRORLOG (MSSQL<nn>.<INSTANCE>\MSSQL\LOG\ERRORLOG) —
hand off to /sqlerrorlog-review.Rules with failures or warnings: section lists any rule with Failed
status (rule warnings alone are Info)IsFirewallEnabled)Rules report file: line points at SystemConfigurationCheck_Report.htm, which holds a
short description for every executed rule and its status — request it if the rule name
alone is ambiguous.Detailed results: shows at least one feature Failed while another
feature Passed in the same runReason for failure: says "an error occurred for a dependency of the feature" failed as
cascade — fix the root feature first (typically Database Engine Services). Follow the
Next Step: guidance per feature: resolve, uninstall the failed feature, rerun setup.
Validate post-repair with /sqlerrorlog-review on first startup.Requested action: is Patch, Upgrade, or RemovePatch AND the log
folder contains per-instance subfolders (e.g., ...\<yyyyMMdd_HHmmss>\MSSQLSERVER\) with
at least one instance summary reporting failure while others passed@@VERSION per instance to confirm.Product Update Status: reports an error, or Detail.txt shows the media-update step
failing (download blocked, WSUS/Microsoft Update unreachable)/UpdateEnabled=False (or UpdateEnabled=False
in the INI) to skip the online check, or point UpdateSource at a local folder holding
the downloaded CU. Patch to the target build immediately after install.RebootRequiredCheck /
"Restart computer" rule) in the Summary rules section or the rules reportPendingFileRenameOperations
under HKLM\SYSTEM\CurrentControlSet\Control\Session Manager. Reboot, then rerun
setup. Diagnose all five signals (CBS, Windows Update, pending file renames, pending
computer rename, ConfigMgr) with this skill's
scripts/check-pending-reboot.ps1 — run it with
-ShowDetail to see which files are waiting and which product left the state behind.
If the state returns after every reboot, an agent/AV product is re-creating it; clear
that product before the maintenance window.Setup Bootstrap\Log folder grows per run. If the failure names a data/log
directory from the INI, repoint INSTALLSQLDATADIR / SQLUSERDBDIR / SQLUSERDBLOGDIR
to a volume with capacity (see U24)./sqlspn-review if Kerberos/SPN errors follow first startup./sqlclusterlog-review when the cluster log shows resource failures around the same
timestamp.Detailed results: per-feature sectionReturn value 3 (the documented failure marker —
search "value 3" and read the lines immediately before it)Return value 3 is the
failure point; the surrounding lines carry the real Windows Installer error (1603,
1935, 1607, ...). Report the failing action, the MSI error code, and the package name
from the log file name (<Feature>_<Architecture>_<Interaction>.log). Generic 1603
with no obvious cause: check U12 (policy blockers) and Windows Installer service health.Final result of Pending
often means the process was killed or the host restarted mid-run.Reason for failure: text. Report exactly one root cause (the earliest independent
failure); list the rest as cascade. Fixing the root cause and rerunning usually clears
every dependent failure — do not chase dependency failures individually.Datastore\ subfolder holds XML dumps of every configuration object per
execution phase — a snapshot of what setup believed each setting to be. Ask for the
relevant XML (instance settings, feature selections) and compare against the intended
configuration. Useful for proving an INI/UI value was not what the operator expected.These run on ConfigurationFile.ini or the User Input Settings: section of the
Summary. Passwords, PID, and some parameters are not persisted to the INI — absence of a
password parameter is normal, not a finding.
SQLSVCACCOUNT (or AGTSVCACCOUNT) is a shared built-in account
(NT AUTHORITY\SYSTEM, NT AUTHORITY\NETWORK SERVICE) on a production multi-service
install, or a regular domain user account where a gMSA/MSA was availableNT Service\MSSQLSERVER — the default)
for standalone boxes, or gMSA for domain estates needing cross-machine identity (AG,
Kerberos). Avoid LocalSystem for the engine. Changing later is done via SQL Server
Configuration Manager (it re-grants the required rights) — not Services.msc.SQLSVCINSTANTFILEINIT is false or absent in the INI / User Input
Settings — SQL 2016+ (the parameter grants "Perform volume maintenance tasks" to the
engine account during setup)/SQLSVCINSTANTFILEINIT="True" in the INI. Verify with
sys.dm_server_services.instant_file_initialization_enabled (cross-check
/sqldbconfig-review B22). Log files do not use IFI (except SQL 2022+ log growths
up to 64 MB).SQLTEMPDBFILECOUNT < MIN(logical processors, 8), or
SQLTEMPDBFILESIZE left at the 8 MB default for a production engine —
SQL 2016+ (setup-time TempDB parameters)SQLTEMPDBFILECOUNT = MIN(logical processors, 8), equal SQLTEMPDBFILESIZE for all
files (hundreds of MB to GBs for busy OLTP), matching SQLTEMPDBFILEGROWTH, and a
dedicated volume via SQLTEMPDBDIR (see U24). Already installed? Fix live and
validate with /sqldbconfig-review B23 and /sqldiskio-review Z7–Z9.SECURITYMODE=SQL (mixed authentication) without a stated requirement;
TCPENABLED=0 on a server meant to accept remote connections (or 1 on a local-only
box); NPENABLED=1 (named pipes) without a legacy client needsa attack surface — prefer Windows authentication and
enable mixed mode only for documented application needs (then rename/disable sa).
Align protocol flags with intent; change later in SQL Server Configuration Manager
(TCP/NP per instance). Cross-check post-install posture with /sqldbconfig-review
B24–B28.FEATURES installs components beyond the stated purpose of the server
(e.g., AS, RS, DQ, IS on an engine-only OLTP box)max server memory). Uninstall
unused features via Programs and Features → SQL Server → Remove, or keep the INI's
FEATURES=SQLENGINE[,REPLICATION] minimal for the next build.INSTALLSQLDATADIR, SQLUSERDBDIR, SQLUSERDBLOGDIR, SQLTEMPDBDIR,
and SQLBACKUPDIR resolve to the same volume, or any of them sit on the system drive
(defaults under C:\Program Files\Microsoft SQL Server\ count)/sqldiskio-review Z6–Z10.If the SQL Server version is stated by the user or visible in the Summary (Version:
under Package properties), read VERSION_COMPATIBILITY.md
(~/.claude/skills/VERSION_COMPATIBILITY.md if installed, or
skills/VERSION_COMPATIBILITY.md from the repo). If unavailable, skip silently. For
checks whose minimum version exceeds the instance version: verbose mode → log as
SKIP (version: requires SQL 20XX+, instance is SQL 20YY); standard report → omit
entirely. Do not suppress NOT ASSESSED rows from missing input — only suppress
version-inapplicable checks. This skill applies to SQL Server on Windows only — the
Setup Bootstrap log layout does not exist on SQL Server on Linux, Azure SQL Database, or
Azure SQL Managed Instance.
Present findings in this order:
| Check | Severity | Artifact | Finding | Fix |
|---|---|---|---|---|
| U1 | Critical | Summary.txt | Final result Failed, exit 0x851A001A on SQLEngine | Check new instance ERRORLOG; see U2 |
Analyzed by:
sqlbootstraplog-review(U1–U24)
/sqlerrorlog-review — the engine ERRORLOG explains "Wait on the Database Engine
recovery handle failed" (0x851A001A) and any post-install startup failure; run it on
the new instance's first ERRORLOG/sqldbconfig-review — validates the running instance against the configuration the
INI promised (IFI B22, TempDB B23, surface area B24–B28)/sqlclusterlog-review — when cluster rules fail (U11) or an AddNode operation breaks
mid-flight, the WSFC cluster log shows the cluster-side view/sqldiskio-review — post-install validation of the directory/volume choices reviewed
by U24/sqlspn-review — service account changes at setup (U19) often surface later as SPN
registration failuresSee skills/VERSION_COMPATIBILITY.md for the full compatibility matrix.
| Check | 2008 R2 | 2012 | 2014 | 2016 | 2017 | 2019 | 2022 | Azure SQL |
|---|---|---|---|---|---|---|---|---|
| U1–U18 (log analysis) | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | N/A |
| U19 Service accounts | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | N/A |
| U20 IFI at setup | — | — | — | ✓ | ✓ | ✓ | ✓ | N/A |
| U21 TempDB at setup | — | — | — | ✓ | ✓ | ✓ | ✓ | N/A |
| U22–U24 (INI review) | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | N/A |
Azure SQL Database and Azure SQL Managed Instance have no user-visible SQL Server Setup; this skill is for SQL Server on Windows.
npx claudepluginhub vanterx/mssql-performance-skills --plugin mssql-performance-skillsProvides CDSS development patterns for drug interaction checking, dose validation, clinical scoring (NEWS2, qSOFA), and alert classification integrated into EMR workflows.