Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

sf agent mcp asset replace --assets null throws raw TypeError instead of InvalidShape

Aperta Adatta ai principianti
#3,625 4 commenti 0 reazioni 0 assegnatari Vedi su GitHub

@konkonrong-lgtm ci sta già lavorando.

Dal 12/8/2026.

  • #472 di @konkonrong-lgtm — aperta

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

area:afdx bug investigating owned by another team validated
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

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di forcedotcom/cli

Tutte le issue di forcedotcom/cli

Issue simili

Altre issue su CLI

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.