Claude-code-plugins-plus-skills palantir-common-errors

install
source · Clone the upstream repo
git clone https://github.com/jeremylongshore/claude-code-plugins-plus-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/jeremylongshore/claude-code-plugins-plus-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/plugins/saas-packs/palantir-pack/skills/palantir-common-errors" ~/.claude/skills/jeremylongshore-claude-code-plugins-plus-skills-palantir-common-errors && rm -rf "$T"
manifest: plugins/saas-packs/palantir-pack/skills/palantir-common-errors/SKILL.md
source content

Palantir Common Errors

Overview

Quick reference for the top 10 most common Foundry API and transform errors with copy-paste solutions.

Prerequisites

  • foundry-platform-sdk
    installed
  • API credentials configured
  • Access to Foundry build logs or application logs

Instructions

Error 1: 401 Unauthorized — Invalid or Expired Token

foundry.ApiError: 401 Unauthorized — The provided token is invalid or expired.

Fix:

# Regenerate token in Developer Console
# Settings > Tokens > Generate new personal access token
# Or re-authenticate with OAuth2:
auth = foundry.ConfidentialClientAuth(
    client_id=os.environ["FOUNDRY_CLIENT_ID"],
    client_secret=os.environ["FOUNDRY_CLIENT_SECRET"],
    hostname=os.environ["FOUNDRY_HOSTNAME"],
    scopes=["api:read-data"],
)
auth.sign_in_as_service_user()  # Gets a fresh token

Error 2: 403 Forbidden — Insufficient Scopes

foundry.ApiError: 403 Forbidden — Missing required scope: api:ontology-read

Fix: Add missing scopes in Developer Console > Your App > Scopes. Common scopes:

  • api:read-data
    — read datasets
  • api:write-data
    — write datasets
  • api:ontology-read
    — read Ontology objects
  • api:ontology-write
    — apply actions

Error 3: ObjectTypeNotFound

foundry.ApiError: 404 ObjectTypeNotFound — Object type 'employee' not found

Fix: Object type names are

camelCase
API names, not display names. Check Ontology Manager:

# List all object types to find the correct api_name
for ot in client.ontologies.ObjectType.list(ontology="my-company"):
    print(f"  {ot.api_name} (display: {ot.display_name})")

Error 4: DatasetNotFound

foundry.ApiError: 404 DatasetNotFound — Dataset not found or you do not have access

Fix: Verify the dataset RID (right-click dataset in Foundry UI > Copy RID). Ensure your service user has Viewer/Editor role on the project.

Error 5: Transform Build AnalysisException

pyspark.sql.utils.AnalysisException: cannot resolve 'fullname' given columns [fullName, department]

Fix: Spark column names are case-sensitive. Print columns to debug:

@transform_df(Output("/out"), data=Input("/in"))
def my_transform(data):
    print(data.columns)  # Check actual column names
    return data.select("fullName")  # Use exact casing

Error 6: OutOfMemoryError in Transform Builds

java.lang.OutOfMemoryError: Java heap space

Fix: Add

@configure
with a larger memory profile:

from transforms.api import configure
@configure(profile=["DRIVER_MEMORY_LARGE"])  # 16GB
@transform_df(Output("/out"), data=Input("/in"))
def heavy_transform(data):
    return data.groupBy("region").agg({"amount": "sum"})

Error 7: ActionValidationFailed

foundry.ApiError: ActionValidationFailed — Parameter 'salary' must be positive

Fix: Read the validation messages for specific constraint violations:

result = client.ontologies.Action.apply(
    ontology="my-company",
    action_type="updateSalary",
    parameters={"employeeId": "EMP-001", "salary": 150000},
)
if result.validation != "VALID":
    for msg in result.validation_messages:
        print(f"  Validation error: {msg}")

Error 8: ConnectionError / SSL Error

requests.exceptions.SSLError: SSL certificate verify failed

Fix: Common behind corporate proxies. Set the CA bundle:

export REQUESTS_CA_BUNDLE=/path/to/corporate-ca-bundle.crt
# Or for development only (NOT production):
export FOUNDRY_SSL_VERIFY=false

Error 9: Rate Limit 429

foundry.ApiError: 429 Too Many Requests — Rate limit exceeded

Fix: See

palantir-rate-limits
for full implementation. Quick fix:

import time
time.sleep(int(response.headers.get("Retry-After", 5)))

Error 10: Circular Dependency in Transforms

Build failed: Circular dependency detected between datasets

Fix: Dataset A's transform reads from B, and B reads from A. Break the cycle by introducing an intermediate dataset or restructuring the pipeline DAG.

Output

  • Identified error from Foundry API response or build logs
  • Applied targeted fix
  • Verified resolution with successful API call or build

Error Handling

HTTP CodeMeaningRetryable
400Bad Request (invalid params)No — fix request
401Token expired/invalidNo — re-authenticate
403Missing scopesNo — update app scopes
404Resource not foundNo — fix identifier
429Rate limitedYes — wait and retry
500/502/503Server errorYes — retry with backoff

Resources

Next Steps

For deeper debugging, see

palantir-debug-bundle
.