Live Tv Not able to Add EPG

{“context”: “CHANNEL_ADD_FAILED”, “deviceInfo”: {“appVersion”: “1.1”, “osVersion”: “1.1”, “platform”: “amazonfire_tv_kepler”, “timestamp”: “2025-10-18T06:32:20.301Z”}, “error”: {“message”: “There was an internal error.”, “name”: “Error”, “stack”: "Error: There was an internal error.

Package.json: Added these dependencies

@amazon-devices/kepler-epg-provider”: “^1.9.0”,
@amazon-devices/kepler-epg-sync-scheduler”: “^1.2.0”
@amzn/headless-task-manager”: “^1.0.0”,

manifest.toml:

Copyright (c) 2022 Amazon.com, Inc. or its affiliates. All rights reserved.

PROPRIETARY/CONFIDENTIAL. USE IS SUBJECT TO LICENSE TERMS.

schema-version = 1

[package]
id = “com.zee5.amazon”
title = “Zee5”
version = “1.0.0”
icon = “@image/logo.png”

The [components] section declares the application components in the package, including interactive, service, and task components.

[components]
[[components.interactive]]
id = “com.zee5.amazon.main”
runtime-module = “/com.amazon.kepler.keplerscript.runtime.loader_2@IKeplerScript_2_0”
categories = [“com.amazon.category.main”,“com.amazon.category.kepler.media”]
launch-type = “singleton”

[[components.service]]
id = “com.zee5.amazon.interface.provider”
runtime-module = “/com.amazon.kepler.headless.runtime.loader_2@IKeplerScript_2_0”
launch-type = “singleton”

[[components.task]]

Define the EPG ingestion task that needs to run periodically

id = “com.zee5.amazon.epgSyncTask”
runtime-module = “/com.amazon.kepler.headless.runtime.loader_2@IKeplerScript_2_0”

[[components.task]]

On Install/Update Task

id = “com.zee5.amazon.onInstallOrUpdateTask”
runtime-module = “/com.amazon.kepler.headless.runtime.loader_2@IKeplerScript_2_0”
headless = true
onInstallOrUpdateTask = true

The [processes] section describes which components in the package should run within a shared process when launched. This section is optional.

[processes]
[[processes.group]]
component-ids = [“com.zee5.amazon.main”]

[[processes.group]]
component-ids = [“com.zee5.amazon.interface.provider”]

[[processes.group]]
component-ids = [“com.zee5.amazon.epgSyncTask”]

[[processes.group]]
component-ids = [“com.zee5.amazon.onInstallOrUpdateTask”]

The [wants] section declares the capabilities that are optional for the application to function on a Kepler device. Handle graceful fallbacks in your application code if a feature in this list is unavailable on a device.

[wants]
[[wants.service]]
id = “com.amazon.inputmethod.service”
[[wants.service]]
id = “com.amazon.kepler.pcon.service.main”
[[wants.service]]
id = “com.amazon.drm.key” # Required for DRM video playback
[[wants.service]]
id = “com.amazon.drm.crypto” # Required for DRM video playback
[[wants.service]]
id = “com.amazon.iap.tester.service” # Required for IAP functionality
[[wants.service]]
id = “com.amazon.iap.core.service” # Required for IAP functionality
[[wants.module]]
id = “/com.amazon.iap.core@IIAPCoreUI”
[[wants.module]]
id = “/com.amazonappstore.iap.tester@IIAPTesterUI”
[[wants.service]]
id = “com.amazon.tv.developer.dataservice”
[[wants.privilege]]
id = “com.amazon.tv.subscription-entitlement.privilege.provide-data”
[[wants.privilege]]
id = “com.amazon.tv.content-personalization.privilege.provide-data”
[[wants.service]]
id = “com.amazon.media.server”
[[wants.service]]
id = “com.amazon.mediametrics.service”
[[wants.service]]
id = “com.amazon.inputd.service”
[[wants.service]]
id = “com.amazon.media.playersession.service”
[[wants.service]]
id = “com.amazon.mediabuffer.service”
[[wants.service]]
id = “com.amazon.mediatransform.service”
[[wants.privilege]]
id = “com.amazon.devconf.privilege.accessibility”
[[wants.service]]
id = “com.amazon.gipc.uuid.*”
[[wants.service]]
id = “com.amazon.audio.stream”
[[wants.service]]
id = “com.amazon.audio.control”
[[wants.service]]
id = “com.amazon.audio.system”
[[wants.service]]
id = “com.amazon.network.service”

The [needs] section declares the system capabilities that the application requires to function on a Kepler device. This information helps Kepler package manager and Amazon Appstore to ensure the application is installed on the supported devices. Carefully declare the application’s needs for your desired device targeting. You can choose a combination of needs and wants to maximize your device reach, while providing enhanced features on applicable devices.

[needs]
[[needs.privilege]]
id = “com.amazon.system.audio”
[[needs.privilege]]
id = “com.amazon.media.secureplayback”
[[needs.privilege]]
id = “com.amazon.privilege.security.file-sharing”
[[needs.privilege]]
id = “com.amazon.background-tasks.privilege.run”
[[needs.privilege]]
id = “com.amazon.network.privilege.net-info”
[[needs.privilege]]
id = “com.amazon.kepler.parental_controls.gates.restricted-content-playback”
[[needs.privilege]]
id = “com.amazon.graphics.privilege.display.manager”

Define the privilege your app needs in order to use the EPG Provider interface

[[needs.privilege]]
id = “com.amazon.kepler.tv.privilege.data_provider”

The [tasks] section declares a small routine that can run at specific events during the lifecycle of the application package. At this time the Kepler system supports the install event for running such tasks. This task can be used to set up other tasks before the application’s first launch. The task section is optional.

[tasks]
[[tasks.work]]
component-id = “com.zee5.amazon.onInstallOrUpdateTask”
mode = “install”

The [offers] section declares the capabilities that an application package offers to other application packages installed on a Kepler system. Offers is an optional section.

[offers]
[[offers.service]]
id = “com.amazon.gipc.uuid.*”

[[offers.interaction]]
id = “com.zee5.amazon.main”

[[offers.service]]
id = “com.zee5.amazon.interface.provider”
required-privileges = [“com.amazon.multimedia.privilege.session.manage”]

[[offers.module]]
id = “/com.zee5.amazon.module@ISomeUri1”
includes-messages = [“pkg://com.zee5.amazon.main”]

The [[message]] section defines the URIs that the application package introduces to the rest of the system.

[[message]]
uri = “pkg://com.zee5.amazon.main”

Match the privileges used in [[offers.interaction]]. If privileges are not added, then use “*”.

sender-privileges = [“*”]
receiver-privileges = [“self”]

[[extras]]
key = “interface.provider”
component-id = “com.zee5.amazon.main”

[extras.value.application]
[[extras.value.application.interface]]
interface_name = “com.amazon.kepler.media.IContentLauncherServer”

attribute_options = [“partner-id”]
static-values = { partner-id = “Z5XGL_ZE” }

[[extras.value.application.interface]]
interface_name = “com.amazon.kepler.media.IAccountLoginServer”
attribute_options = [“Status”]
override_attribute_component = { Status = “com.zee5.amazon.interface.provider” }

Below IMediaPlaybackServer entry is needed for KMC integration. Needs to be added for Content Launcher to work.

[[extras.value.application.interface]]
interface_name = “com.amazon.kepler.media.IMediaPlaybackServer”
command_options = [
“Play”,
“Pause”,
“StartOver”,
“Previous”,
“Next”,
“SkipForward”,
“SkipBackward”,
]
attribute_options = [“AudioAdvanceMuted”]
features = [“AdvancedSeek”, “VariableSpeed”, “AudioTracks”, “TextTracks”]

[[needs.module]]
id = “/com.amazon.kepler.media.@IAccountLogin1

[[needs.module]]
id = “/com.amazon.kepler.media@IContentLauncher1”

[[needs.module]]
id = “/com.amazon.kepler.appstore.iap.purchase.core@IAppstoreIAPPurchaseCoreService”

**
**

Hi @Vishnu
I can see you have made another Bug Report Submission following the Bug Report Template and that seems to be for the same issue.
We’ll be replying to that case and will close this one fore now.
Warm regards,
Ivy