Q : What is an API call?
Anytime you make a network call to App42 on behalf of your app using any of the App42 functions, you make an API call.
Q : Can I delete my app?
Once your app is created, it cannot be deleted, however, you can change the status of your app to inactive through AppHQ console under AppManager -> View Apps option.
Q : How is my app data secured in App42?
Data generated by an app is sandboxed and cannot be accessed by any other app. App42 uses HTTPS protocol to securely transmit data from the client to App42 cloud.
Q : My API and Secret Keys can be seen and accessed by any potential programmer as they reside on client side. How to deal with this scenario?
It is advisable to use ACL enabled apps and use custom keys for restricted access. Please go through this
tutorial for more details.
Q : I am getting Unauthorized Exception in my client code. What is wrong with it?
Unauthorized Exception comes due to two main reasons. One, your API Key/Secret Key is wrong or the time settings of your device is not correct.
Q : Why do I need to set correct time settings on my device to run my app?
This configuration is required to protect your app from replay attacks. However, if you want to disable it, you can do so from AppHQ Management Console under App Manager -> Settings (Make sure your desired app is selected) -> App Configuration -> Disable Replay Attack Protection.
Q : What is the difference between ACL and Non ACL apps?
ACL apps are more secure in the way that one app user (For eg. User A) cannot access the data of another user (For eg. User B) until user A gives permission to User B to access it. In Non-ACL apps, any user can access data of another user. Please go through this
tutorial for more details.
Q : What does default Permission mean while creating ACL enabled app?
Default permission is used to give a default access to PUBLIC (all users of app) at the time of data creation for a given user. For example if user A has created a JSON object and default permission is set to PUBLIC READ, all app users would be able to access his JSON object.
Q : Is it necessary to use User Management service for my app users in order to use APIs like Leaderboard, Reward, Push Notification, etc.?
No, you can use all App42 services in isolation as they are independent of each other. In all the APIs, username is an unique identifier for fetching your data.
Q : What is a background job?
Background Job allows you to set up long running tasks that can be run on demand or on schedule.
Q : How is burst limit calculated?
Burst limit is the number of API calls your app can make in a second. You can check out your app's burst limit as per your chosen pricing plan.
Q : What happens if my app exceeds the burst limit?
Once your app exceeds the burst limit, any further API calls will be dropped. To prevent the API calls from dropping you should adjust the burst limit by contacting us at sales@shephertz.com.
Q : How can I determine the resources (App42 Services) my app is currently using?
You can see all the services being used in the AppHQ Management Console.
Q : On which server is my app hosted? Can I host my app in a region of my own choice?
Your app is hosted on a datacenter located in the United States. We understand there may be a requirement of hosting apps in different geographic regions, but at this point of time it is not possible with the shared environment. In case of a dedicated setup, you will have an option to choose the server location of your preference, kindly contact sales for more details.
Q : What will happen if my payment to ShepHertz does not go through for whatever reason? Will my app stop working?
Your app will not suddenly stop working if your payment to ShepHertz does not go through for any reason. You will get an email reminder if your payment fails. Please update your credit card information as soon as possible and we will try to charge your account again in 24 hours. If your account fails to submit payment within 30 days, we reserve the right to disable your account.
Q : What are the best practices to write custom cloud code?
Please have a look at this
link for more details.
Q : Are requests made from Custom Cloud Code treated as API calls?
Yes, calling a Custom Cloud Code function will count as a single request.
Q : How can I reset password of my app users from AppHQ console?
You can login to AppHQ Management Console, click on User tab in the left hand side submenu and click on App42 -> Select Your App-> Select user from list -> Click on Manage -> Click Reset Password button*.
Q : How many databases can I create for my app in NoSQL Storage Service?
You are allowed to create only one database per app.
Q : What does collection mean in NoSQL Storage Service?
Collection is like a table in your RDBMS schema.
Q : Do I need to create any schema/relation to save JSON objects in NoSQL Storage Service?
App42 Storage Service works on NoSQL stack and you are not required to create any schema/relation for the same. You can simply store any JSON object inside given collection.
Q : How can I delete my database in storage service?
You cannot delete database. However, you can delete all your collections from AppHQ console.
Q : I am getting *Message Sent Successfully* while sending message from AppHQ console. However, message is not being delivered to my app. What is wrong here with my app settings?
In case your message is sent but is not delivered to your user then you may check Push logs by clicking on Unified Notifications in the left hand side submenu and clicking on Push tab to figure out the cause.
Q : How can I send Non-English characters in Push Notifications?
If you would like to send Non-English characters in Push Notifications, you would have add some additional parameters. Please see
here for the code snippet.
Q. How long is the backup data retained?
We retain most recent 5 incremental/progressive backups for each of your app, which means you would be able to restore data from any of the last five days. However, for enterprise plans we have customizations available that allow flexibility in incremental/progressive backups.
Q : When should I initialize AppWarp Client?
AppWarp Client must be initialised before making API calls to AppWarp server. It is recommended to initialise it on App Open.
Q : Can I use AppWarp and App42 Cloud APIs together?
Yes, you can.
Q : How do I recover the last session, if the client got disconnected due to intermittent network connectivity?
You can recover your last session using our ConnectionResiliency APIs. For more details, please go through this
tutorial.
Q : What is the recommended value for recovery allowance time?
The recommended recovery allowance time is 60 to 120 secs.
Q : Why am I getting Bad_Request while connecting to the AppWarp server?
While connecting to the AppWarp server, you may get bad request due to following reasons:
If you are calling connectWithUserName API but you are already connected
If you call connectWithUserName second time but the first request is still processing
Q : Why an API call gives me Bad_Request in response?
You may get bad request if the parameters passed to the request are invalid. For example, if null or empty string is passed in the roomId parameter of a join Room request,you would then get Bad_Request.
Q : What are the reasons of Auth_Error?
Auth_Error can occur due to following reasons:
If the client connects without initializing with the correct keys
If the userName that you are using to connect is already taken by someone else
If you are in paused state on the server but calling connectWithUserName instead of
recoverConnection
You could also see the reasonCode(21WAITING_FOR_PAUSED_USER, 22INVALID_API_KEY) which comes with Auth_Error to identify the actual cause.
Q : When listeners should be added?
Every API call is tied with a callback available in a listener class. Before calling any API, you must ensure that its corresponding callback is defined and the corresponding listener object is added to get the response from AppWarp server.
Q : Why do my listener callbacks are not getting called?
This issue arises if the corresponding listener instance is not set up. For example, to receive connection related listener callbacks you should set the instance of ConnectionRequestListner using addConnectionRequestListener API.
Q : Why do my listener callbacks are called in first scene but not in second?
Please make sure that the listener object you added for the first scene is not deleted. If you have created the listener object locally to the first scene then it is possible that it is already deleted on scene transition and hence the callbacks will not be called in next scene.
Q : Does AppWarp allow crossplatform clientside communication? For example, can Android users communicate with iOS users?
Yes, AppWarp is built to establish the communication between the clients across omnichannel platforms.
Q : Why am I getting Auth_Error for recoverConnection API?
If you call recoverConnection API after recoveryAllowanceTime then you will get Auth_Error because the session for this user has already been removed by the server and there is no session to recover. It will also come if you are calling recoverConnection but recoveryAllowanceTime is not set. In this case, we suggest you call connectWithUserName API.
Q : Why the users connected to AppWarp server are not getting room notifications?
Please make sure that you have:
added notification listener
subscribed for the room
Q : Why the users connected to AppWarp server are not getting lobby notifications?
Please make sure that you have:
added notification listener
subscribed for the lobby
Q : Why chat/move sent by one player in a room is not received by others in the same room?
Please make sure that you have:
added notification listener
subscribed for the room
Q : How does the app configuration option "Auto Recover Time" set in dashboard interact with the setRecoveryAllowance API called from the application?
The Auto Recover feature in dashboard is given to avoid manual management of the session recovery. If auto recovery is enabled from the dashboard, then it overrides the setRecoveryAllowance time value passed by the application. If the same is disabled from the dashboard then the recovery allowance time passed from the SDK will be considered.
Q : What is Kick Out Time and how does it work?
Kick Out Time is a time after which the idle users will be disconnected by AppWarp Server. If enabled, then the users not making any API activity related to AppWarp server will be considered as idle and will be removed after the mentioned Kick out time in the dashboard.
Q : What is Ghost room?
Any dynamic room which is empty for the set time limit (default time is 1 hr) is a Ghost room.
Q : How to connect users to a particular AppWarp server based on my custom geo selection algorithm?
You can use
setGeo API. This API allows you to connect to our cloud servers in locations other than the default location.
Q : How to enable users to connect to their nearest AppWarp server automatically?
By passing “auto” as parameter in the
setGeo API.
Q : Is there any limit on message size which is sent or received between AppWarp Client and server?
Yes. You can send or receive a message of size up to 1024 bytes.
Q : What is the difference between Static and Dynamic rooms?
Static Room: These are the rooms that you can create using AppHQ management console. Such rooms will never get automatically destroyed unless you delete them through the console. These are particularly useful when you have a fixed number of rooms in your game.
Dynamic Room: These rooms can be created by invoking the createRoom API from client side SDK as well as from AppHQ. Such rooms will automatically get destroyed if they remain empty for 60 minutes (default Ghost Room Deletion time).
Q : Can we delete static rooms?
Yes, Static rooms can be created or deleted from the dashboard.
Q : What is Kontena?
Kontena is a lightweight container that will run your apps and services in an isolated and secured manner. You can specify the power of the Kontena while setting up infra or creating services. One Kontena power specifies to 256 MB Memory and 128 MHz CPU.
Q : What is Service?
Services in the App42 PaaS are add-on components which are needed in an App. App42 PaaS supports multiple services like SQL databases, NoSQL databases and more.
Q : Can I save files on the Instance where my App is running?
App42 PaaS do not put any restriction on file writing but any data stored on the file system will not be available to other containers. And also the saved data will be deleted in case of next restart. You can use the file system to store the temp files which will be available for the life time of the request.
Q : Can I access the services from my local system?
Yes you can definitely make a tunnel to your service from anywhere using bindIP command. And use the service same way as you are running it on your local system.
Q : Where can I see my application logs?
You can see your application logs on the App List page in the AppHQ – App42 PaaS Management Console. Clicking on the ‘View Logs’ button will give you instance wise logs. You can also get the log urls from the Command Line Client by running app42 logs command & giving the app name.
Q : I deployed my application successfully, but application is not running. What do I need to do?
You can check the status of your App from Command Line Client as well as AppHQ – App42 PaaS Management Console. If the status of your App is INPROGRESS, it will be brought to the desired state in a short while.
Q : While creating GPaaS setup, Why I am getting a popup "Please upgrade your package first"?
The reason for this message is that you are on Free package and trying to use the service which is not available under free tier. GPaaS setup is a premium service that does not fall under free tier. If you want to create GPaaS setup, you need to move to Paid package. You can write a mail to support@shephertz.com to upgrade your package.