sf agent mcp asset replace --assets null throws raw TypeError instead of InvalidShape
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 78/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Tranquilla
- Stack tecnologico
- javascript, node.js
- Ambito
- cli, testing-qa
Direzione di ricerca
Inizia dalla validazione dell’input lato client per agent mcp asset replace nel codice sorgente di plugin-agent ed esegui la relativa suite di test unitari con --assets "null". Confronta il percorso null con la gestione esistente di una forma di oggetto non valida. Il lavoro è completato quando null produce InvalidShape, la suite di regressione supera 448 test e yarn build ha esito positivo.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Summary
sf agent mcp asset replace throws an uncaught TypeError when --assets is valid JSON with the value null.
null is valid JSON, but it is not a valid asset input shape. The command should reject it with the existing InvalidShape error instead of exposing an internal JavaScript error:
Cannot read properties of null (reading 'assets')
The failure occurs while parsing the CLI input, before an API request is made.
Steps To Reproduce
A separate reproduction repository is not required because this can be reproduced directly with the Salesforce CLI command.
With an authenticated target org, run:
sf agent mcp asset replace --mcp-server-id <MCP_SERVER_ID> --assets "null" -o <TARGET_ORG> --json
The command returns a result similar to:
{
"name": "TypeError",
"message": "Cannot read properties of null (reading 'assets')",
"exitCode": 10,
"context": "ApiCatalogMcpServerAssetReplace"
}
Expected result
Because null is valid JSON but does not match either supported asset shape, the command should reject it with the existing InvalidShape error.
For example, invalid object shapes are already handled as InvalidShape.
Actual result
The command attempts to access .assets on null and throws a raw JavaScript TypeError:
Cannot read properties of null (reading 'assets')
Additional information
The issue appears to be in the client-side input validation for agent mcp asset replace.
The command currently distinguishes between an array and an object containing an assets property. When the parsed JSON value is null, it attempts to read .assets before the existing InvalidShape validation can run.
I reproduced this locally and also added a regression test against the current salesforcecli/plugin-agent source. Before the fix, the full unit test suite resulted in:
447 passing
1 failing
AssertionError: expected 'TypeError' to equal 'InvalidShape'
After guarding the property access, the suite passes with:
448 passing
yarn build also completes successfully.
agent mcp is currently in Developer Preview.
System Information
Shell: Windows PowerShell
{
"architecture": "win32-x64",
"cliVersion": "@salesforce/cli/2.146.3",
"nodeVersion": "node-v22.23.1",
"osVersion": "Windows_NT 10.0.26200",
"rootPath": "C:\\Program Files\\sf\\client",
"shell": "cmd.exe",
"pluginVersions": [
"@oclif/plugin-autocomplete 3.2.54 (core)",
"@oclif/plugin-commands 4.1.61 (core)",
"@oclif/plugin-help 6.2.55 (core)",
"@oclif/plugin-not-found 3.2.90 (core)",
"@oclif/plugin-plugins 5.4.86 (core)",
"@oclif/plugin-search 1.2.54 (core)",
"@oclif/plugin-update 4.7.56 (core)",
"@oclif/plugin-version 2.2.52 (core)",
"@oclif/plugin-warn-if-update-available 3.1.70 (core)",
"@oclif/plugin-which 3.2.59 (core)",
"@salesforce/cli 2.146.3 (core)",
"agent 1.45.0 (core)",
"apex 3.9.40 (core)",
"api 1.3.54 (core)",
"auth 4.4.9 (core)",
"data 4.0.115 (core)",
"deploy-retrieve 3.24.61 (core)",
"info 3.4.155 (core)",
"limits 3.3.106 (core)",
"marketplace 1.3.44 (core)",
"org 5.11.26 (core)",
"packaging 2.30.6 (core)",
"schema 3.3.131 (core)",
"settings 2.4.101 (core)",
"sobject 1.4.125 (core)",
"telemetry 3.8.33 (core)",
"templates 56.20.0 (core)",
"trust 3.8.43 (core)",
"user 3.10.9 (core)"
]
}
- Lingua principale
- Nessun dato sulla lingua
- Stelle
- 571
- Fork
- 80
- Merge medio
- 2g 21h
- PR unite (30g)
- 3
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di forcedotcom/cli
-
investigating validated
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
forcedotcom/cli#3657 · 2 commenti ·
-
`sf agent preview` fails with `AgentApiNotFound` against staging (aws-stage1) orgs — `stage.api.salesforce.com` missing from endpoint fallbackForse già presa Una pull request collegata a questa issue è aperta o già unita. Apertaarea:afdx owned by another team
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
forcedotcom/cli#3645 · 2 commenti ·
-
bug investigating validated
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
forcedotcom/cli#3644 · 6 commenti ·
-
area:afdx bug owned by another team
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
forcedotcom/cli#3608 · 2 commenti ·
-
[BUG]: NavigationMenu SourceMember name mismatch prevents source-tracked retrieve from completingApertabug investigating validated
Difficoltà 4/5 3-5 giorni Idoneità per principianti 52/100
forcedotcom/cli#3660 · 3 commenti ·
Tutte le issue di forcedotcom/cli
Issue simili
-
area/config area/profiles comp/cli needs-decision P3 sweeper:risk-compatibility type/feature
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
NousResearch/hermes-agent#133697 ·
I maintainer di solito rispondono entro 1 giorno
-
area:manager bug triage:confirmed
Difficoltà 2/5 1-3 ore Idoneità per principianti 86/100
Cotal-AI/Cotal#2873 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
area: cli priority: P2 type: defect
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
jiegui2025/hwspec#55 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 79/100
topgrade-rs/topgrade#2395 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
columnar-tech/dbc#513 ·
I maintainer di solito rispondono entro 1 giorno