Skip to main content
Version: v2.4.1

Watchlist Troubleshooting

Overview

The Watchlist feature in AlphaSense enables users to organize and monitor companies of interest by creating custom watchlists. Users can add companies individually through autocomplete search or in bulk using ticker imports (supporting ticker symbols, ISIN, CUSIP, SEDOL, and Bloomberg identifiers). Watchlists can be shared with team members within the same company or sent as copies to specific users via email notifications.

The watchlist functionality is primarily served by the graphql-watchlist service, which handles watchlist CRUD operations, company ticker resolution, and integrates with the notification delivery service for sharing capabilities. Watchlists can be applied as filters in search operations and linked to monitoring dashboards for focused company tracking.

Common dependencies involved in watchlist operations include graphql-watchlist, ticker, notification-delivery-service, user-service, graphql-search.

This document outlines common failure scenarios related to watchlist operations and provides troubleshooting steps for resolution.

Failure Scenarios

Watchlists Not Loading / Not Displaying

Triage:

Users attempt to load their watchlists but see no watchlists displayed. The watchlist dropdown in search filters shows an empty state despite existing watchlists. This indicates watchlist service disruption, GraphQL query failures, or cache synchronization issues.

Common symptoms include:

  • Empty watchlist dropdown in filters
  • "Failed to load watchlists" error message

Troubleshooting:

Quick Resolution:

Have the user refresh the browser or log out and log back in to check if watchlists start loading. If the issue persists, proceed with service verification.


Verify watchlist services are running:

kubectl get pods -n applications | grep graphql-watchlist

All pods should be in Running state with 1/1 ready containers.

Check pod health and recent events:

kubectl describe pod -n applications -l app=graphql-watchlist

Look for:

  • Pod status like CrashLoopBackOff, OOMKilled, or ImagePullBackOff
  • Unexpected restarts or recent deployments
  • Resource pressure indicators

If pods are failing or stuck, restart the deployment:

kubectl rollout restart deploy/graphql-watchlist -n applications

Check graphql-watchlist service logs for any errors.

kubectl logs -n applications deployment/graphql-watchlist --tail=100

Example error log:

ERROR [graphql-watchlist] Failed to fetch watchlists for user 12345: Database connection timeout after 5000ms

Cannot Add/Remove Companies from Watchlist

Triage:

Users add companies to a watchlist but the companies don't appear, or users attempt to remove companies but they remain visible after the operation. Operations may fail with "Unable to update watchlist" or "Failed to add company" error messages.

This indicates patch mutation failures, company ID resolution issues, ticker service unavailability, or cache synchronization problems.

Troubleshooting:

Check graphql-watchlist service logs for update operations:

kubectl logs -n applications deployment/graphql-watchlist --tail=100

Example error log:

ERROR [graphql-watchlist] Failed to add company to watchlist: Invalid company ID or ticker symbol not found: XYZ123

Verify ticker resolution service is available:

kubectl get pods -n applications -l app=ticker

All ticker service pods should be in Running state.

Check ticker service logs for resolution errors:

kubectl logs -n applications deployment/ticker --tail=100

Common Issues:

Company ID Resolution Failures:

  • Invalid ticker format (unsupported symbol)
  • Ticker not found in the system
  • Ticker service timeout or unavailable

Workaround:

Have the user try adding companies one at a time using the autocomplete search instead of bulk operations. This provides real-time validation and clearer error feedback.


Bulk Import Tickers Fails / Invalid Tickers

Triage:

Users paste multiple tickers in bulk import mode but encounter "INVALID TICKER(S)" error. The validation dialog shows all tickers as invalid, or the import operation fails silently without adding any companies to the watchlist.

This indicates ticker format parsing issues, unsupported identifier types, ticker service unavailability, or validation logic failures.

Troubleshooting:

Supported Ticker Formats:

  • Ticker symbol (e.g., AAPL, MSFT)
  • ISIN (e.g., US0378331005)
  • CUSIP (e.g., 037833100)
  • SEDOL (e.g., 2046251)
  • Bloomberg ticker (e.g., AAPL US Equity)

NOT Supported:

  • Company names (e.g., "Apple Inc.")
  • Custom identifiers
  • Mixed formats in single entry

Check ticker resolution logs:

kubectl logs -n applications deployment/ticker --tail=100

Example error log:

WARN [graphql-watchlist] Bulk ticker validation failed: 15 of 20 tickers could not be resolved
ERROR [graphql-watchlist] Invalid ticker format: "Apple Inc" - company names not supported

Verify ticker service is operational:

kubectl get pods -n applications -l app=ticker

Check ticker service logs for errors:

kubectl logs -n applications deployment/ticker --tail=100

Workaround:

Have users try:

  1. Individual ticker mode (autocomplete) instead of bulk import - this provides real-time validation and clearer error messages
  2. Reducing the number of tickers per bulk import operation (try batches of 10-20 instead of 50+)
  3. Using standardized ticker formats (ticker symbols or ISINs work best)

Watchlist Create/Update/Delete Operations Failing

Triage:

Users cannot create new watchlists, rename existing watchlists, delete watchlists, or update watchlist properties (such as sharing settings or descriptions). Operations return generic errors like "Something went wrong" or "Failed to save changes", or fail without any user feedback.

Troubleshooting:

Verify watchlist services are running:

kubectl get pods -n applications | grep graphql-watchlist

All pods should be in Running state with 1/1 ready containers.


Check graphql-watchlist service logs for operation details:

kubectl logs -n applications deployment/graphql-watchlist --tail=100

Example error logs:

ERROR [graphql-watchlist] Failed to delete watchlist ID 789: Watchlist has 3 linked saved searches
ERROR [graphql-watchlist] Watchlist creation failed: Name "Q1 2024 Companies" already exists for user 12345
WARN [graphql-watchlist] Update rejected: Watchlist name exceeds 50 character limit

Common Issues:

Delete Failures:

  • Watchlist has linked saved searches that prevent deletion

Update Failures:

  • Watchlist name already exists for the user
  • Watchlist name exceeds 50 character limit

Create Failures:

  • Duplicate watchlist name for user

Resolution:

If services are unresponsive, restart the watchlist service:

kubectl rollout restart deployment/graphql-watchlist -n applications

Send Watchlist Copy Feature Not Working

Triage:

Users attempt to send a watchlist copy to team members but the operation fails. Recipients don't receive email notifications, or copied watchlists don't appear in recipient accounts. The send operation may appear to complete successfully but recipients report not receiving the watchlist.

Troubleshooting:

Check graphql-watchlist service logs for copy operations:

kubectl logs -n applications deployment/graphql-watchlist --tail=100

Example error logs:

ERROR [graphql-watchlist] Failed to send watchlist copy: User ID 67890 not found
WARN [graphql-watchlist] Watchlist copy created but notification delivery failed for 2 of 5 recipients
ERROR [graphql-watchlist] Transaction rollback: Failed to create watchlist copies for users [6789, 67891]

Verify notification delivery service is available:

kubectl get pods -n platform-alerts -l app=notification-delivery-service

All notification service pods should be in Running state.

Check notification service logs for watchlist-related notifications:

kubectl logs -n platform-alerts deployment/notification-delivery-service --tail=100

Example error log:

ERROR [notification-delivery-service] Failed to deliver watchlist notification email to user@example.com: SMTP timeout after 30s
WARN [notification-delivery-service] User user@example.com is in suppression list - email not sent

Common Issues:

Recipients Not Found:

  • Invalid user IDs provided
  • User lookup service unavailable
  • Cross-company sharing attempted (only same-company sharing supported)

Email Delivery Failures:

  • User is in email suppression list (check using the Alert Tracking app in Retool)
  • Email template missing or failed to render
  • Recipient email address invalid or bounced previously

Resolution:

For notification service issues, restart the service:

kubectl rollout restart deployment/notification-delivery-service -n platform-alerts