Runs when the user opens Program Instructions (ProgramInstructionsFragment -> ProgramInfoRepositoryImpl.fetchProgramInstructions). The list is saved in SharedPreferences, then filtered to the selected language and sorted by instruction_order for display. Errors show a message and the cached copy stays.
Headers
Header
Value
Notes
X-SESSIONID
<session token>
Not set by the call site. AuthInterceptor (OkHttpClientInterceptor) adds it from AndroidSessionManager. On a 401 or 400 it invalidates the token, gets a fresh one and retries once.
Parameters
Param
In
Required
Example
Notes
name
query
Yes
PlusOneInstructions
Dataset name. The rtld executor (/rtld/api/dataset/v1/execute) picks the dataset by this query param.
version
query
Yes
1
Dataset version. Always 1.
format
query
Yes
json
Response format. Always json, so the body is a JSON array of row objects.
Request
No body.
Response
Example response body (synthetic data)
[
{
"Language": "ENG",
"description": "Record land details before the crop plan.",
"instruction_order": "1"
},
{
"Language": "ENG",
"description": "Sync pending data daily.",
"instruction_order": "2"
}
]
Field
Type
Required
Notes
Language
string
Language code; filtered to the selected language.
description
string
Instruction text.
instruction_order
string
Sort key (string sort).
Errors
Status
When
What the app does
401 / 400
Session token expired or rejected
AuthInterceptor refreshes the token and retries once; if the retry also fails, Resource.error with the response message; the cached list is still shown.
5xx
Dataset query failed on the server
Resource.error with the response message; the cached list is still shown.
network error
No connectivity or timeout
Resource.error with the response message; the cached list is still shown.