Problema retorno Json

Boa tarde pessoal, estou precisando de uma luz.
Tenho um app simples que fiz pra uma necessidade de um cliente, ele basicamente tem um form onde você digita um codigo, ele envia isso a um arquivo php externo que retorna em Json se existe ou não esse codigo na base de dados.
O que acontece é que sempre funcionou normalmente, até começar a dar esse erro que ja postei aqui

Desconfio que o erro era provocado por que o php demorava de retornar ao app provocando a queda do sistema, então resolvi editar esse Json para fazer a busca em um banco de dados mySql e fazer o mesmo retorno ao app.
Na teoria tudo funciona as mil maravilhas, teste de várias formas usando php e o Json retorna perfeito, porém quando faço a busca pelo app, o aplicativo retorna somente a primeira linha da tabela.

testes ja realizados.

Para vocês entenderem melhor o erro eu cirei essa página para testar o retorno do Json
http://portal.aquaload.com.br/teste.php
o retorno é perfeito como vocês podem testar com os codigos AL00001 ou AL03041.

Pelo app, usando o antigo código que está no post mencionado acida, ele retorna normal, porem quando adequei a sql ele só retorna a primeira linha da tabela.

Segue o codigo do app

package br.com.aquaload.aqualoaditc;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.net.Uri;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import com.google.gson.JsonObject;
import com.google.zxing.integration.android.IntentIntegrator;
import com.google.zxing.integration.android.IntentResult;
import com.koushikdutta.async.future.FutureCallback;
import com.koushikdutta.ion.Ion;

import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_PORTRAIT;

public class qr_code extends AppCompatActivity {
    Button btnScan;
    Button btnBuscar;
    EditText txtLeitor;
    String HOST = "http://portal.aquaload.com.br/buscador_app.php";


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_qr_code);
        //deixa o app fixo na vertical
        this.setRequestedOrientation(SCREEN_ORIENTATION_PORTRAIT);
        //retira a barra de título
        getSupportActionBar().hide(); //aqui a mágica


        txtLeitor = (EditText) findViewById(R.id.txtLeitor);
        btnScan = (Button) findViewById(R.id.btnScan);
        btnBuscar = (Button) findViewById(R.id.btnBuscar);

        final Activity activity = this;

        btnBuscar.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                String arquivo = txtLeitor.getText().toString();
                String URL = HOST;

                if(arquivo.isEmpty()){
                    Toast.makeText(qr_code.this,"Preencha o campo",Toast.LENGTH_LONG).show();
                }else{
                    Ion.with(qr_code.this)
                            .load(URL)
                            .setBodyParameter("arquivo_app", arquivo)
                            .asJsonObject()
                            .setCallback(new FutureCallback<JsonObject>() {
                                @Override
                                public void onCompleted(Exception e, final JsonObject result) {

                                    try{
                                        //Toast.makeText(qr_code.this,"Arquivo: " + result.get("ARQUIVO").getAsString(), Toast.LENGTH_LONG).show();
                                        final String RETORNO = result.get("ARQUIVO").getAsString();
                                        if (RETORNO.equals("ARQUIVO_NAO_EXISTE")) {
                                            Toast.makeText(qr_code.this, "O arquivo não existe em nossa base de dados", Toast.LENGTH_LONG).show();
                                        }else {
                                            AlertDialog.Builder msgBox = new AlertDialog.Builder(qr_code.this);
                                            msgBox.setTitle("Arquivo Encontrado");
                                            //msgBox.setIcon();
                                            msgBox.setMessage("Confirmar o download do arquivo? " + RETORNO);
                                            msgBox.setPositiveButton("Baixar agora", new DialogInterface.OnClickListener() {
                                                @Override
                                                public void onClick(DialogInterface dialogInterface, int i) {
                                                    //vai pro link
                                                    String url_destino = "http://portal.aquaload.com.br/";
                                                    Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url_destino + RETORNO));
                                                    startActivity(browserIntent);
                                                    //Toast.makeText(qr_code.this,"Arquivo: " + RETORNO, Toast.LENGTH_LONG).show();
                                                }
                                            });
                                            msgBox.setNegativeButton("Voltar", new DialogInterface.OnClickListener() {
                                                @Override
                                                public void onClick(DialogInterface dialogInterface, int i) {

                                                }
                                            });
                                            msgBox.show();
                                        }

                                    }catch (Exception erro){
                                        AlertDialog.Builder msgBox = new AlertDialog.Builder(qr_code.this);
                                        msgBox.setTitle("ERRO");
                                        //msgBox.setIcon();
                                        msgBox.setMessage("Aconteceu um erro "+erro);
                                        msgBox.setNegativeButton("Voltar", new DialogInterface.OnClickListener() {
                                            @Override
                                            public void onClick(DialogInterface dialogInterface, int i) {

                                            }
                                        });
                                        msgBox.show();
                                        //toast
                                        //Toast.makeText(qr_code.this,"Sem conexão com o banco de dados, verifique sua internet "+erro,Toast.LENGTH_LONG).show();
                                    }
                                }
                            });

                }


            }
        });

        btnScan.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                IntentIntegrator integrator = new IntentIntegrator(activity);
                integrator.setDesiredBarcodeFormats(IntentIntegrator.QR_CODE_TYPES);
                integrator.setPrompt("Camera Escaniando");
                integrator.setCameraId(0);
                integrator.initiateScan();
            }
        });
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        IntentResult result = IntentIntegrator.parseActivityResult(requestCode,resultCode,data);

        if(result != null){
            if(result.getContents() != null){
                //pesquisa
                String arquivo = result.getContents();
                String URL = HOST;

                if(arquivo.isEmpty()){
                    Toast.makeText(qr_code.this,"Erro de leitura, tente novamente",Toast.LENGTH_LONG).show();
                }else{
                    Ion.with(qr_code.this)
                            .load(URL)
                            .setBodyParameter("arquivo_app", arquivo)
                            .asJsonObject()
                            .setCallback(new FutureCallback<JsonObject>() {
                                @Override
                                public void onCompleted(Exception e, final JsonObject result) {

                                    try{
                                        //Toast.makeText(qr_code.this,"Arquivo: " + result.get("ARQUIVO").getAsString(), Toast.LENGTH_LONG).show();
                                        final String RETORNO = result.get("ARQUIVO").getAsString();
                                        if (RETORNO.equals("ARQUIVO_NAO_EXISTE")) {
                                            Toast.makeText(qr_code.this, "O arquivo não existe em nossa base de dados", Toast.LENGTH_LONG).show();
                                        }else {
                                            AlertDialog.Builder msgBox = new AlertDialog.Builder(qr_code.this);
                                            msgBox.setTitle("Arquivo Encontrado");
                                            //msgBox.setIcon();
                                            msgBox.setMessage("Confirmar o download do arquivo?");
                                            msgBox.setPositiveButton("Baixar agora", new DialogInterface.OnClickListener() {
                                                @Override
                                                public void onClick(DialogInterface dialogInterface, int i) {
                                                    //vai pro link
                                                    String url_destino = "http://portal.aquaload.com.br/";
                                                    Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url_destino + RETORNO));
                                                    startActivity(browserIntent);
                                                    //Toast.makeText(qr_code.this,"Arquivo: " + url_destino + RETORNO, Toast.LENGTH_LONG).show();
                                                }
                                            });
                                            msgBox.setNegativeButton("Voltar", new DialogInterface.OnClickListener() {
                                                @Override
                                                public void onClick(DialogInterface dialogInterface, int i) {

                                                }
                                            });
                                            msgBox.show();
                                        }

                                    }catch (Exception erro){
                                        Toast.makeText(qr_code.this,"Sem conexão com o banco de dados, verifique sua internet",Toast.LENGTH_LONG).show();
                                    }
                                }
                            });

                }
                //fim pesquisa
                //alerta(result.getContents());
            }else{
                alerta("Cancelado");
            }
        }else{
            super.onActivityResult(requestCode, resultCode, data);
        }


    }
    private void alerta (String msg){
        Toast.makeText(getApplicationContext(),msg,Toast.LENGTH_LONG).show();
    }
    private void buscar (String msg){
        String buscador;
        buscador = "Marucio";

    }
}

Segue também o codigo do Json buscando em mysql

<?php
$servername = "localhost";
$username = "senha";
$password = "";
$dbname = "portal";
$post = $_POST['busca'];

// Cria a conexao
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    $retornoApp = array("ARQUIVO" => "SEM_CONEXAO");
    echo json_encode($retornoApp);
    exit();
} 

$sql = "Select * from uploads where local_upload LIKE '%$post%'";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    // output data of each row
    $row = $result->fetch_assoc();
    $retornoApp = array("ARQUIVO" => "arquivos/".$row["local_upload"]);
    echo json_encode($retornoApp);
 
} else {
    $retornoApp = array("ARQUIVO" => "ARQUIVO_NAO_EXISTE");
    echo json_encode($retornoApp);
}
$conn->close();  

espero que alguem consiga me dar uma luz

Estou com um problema parecido.
Crio um usuário dentro desta função, porém não consigo acessar o usuário criado.

Você conseguiu resolver?
Alguém tem um a luz?

A ideia é Fazer o login com a matricula, depois criar um objeto (usuario) buscando os dados no banco referente a matricula.

Segue a função:

public void criaUsuario(final String matricula) {

        Ion.with(MainActivity.this)
                .load(url_user_read)
                .setBodyParameter("matricula", matricula)
                .asJsonArray()
                .setCallback(new FutureCallback<JsonArray>() {
                    @Override
                    public void onCompleted(Exception e, JsonArray result) {

                        for (int i = 0; i < result.size(); i++) {

                            JsonObject obj = result.get(i).getAsJsonObject();

                            Usuario usuario = new Usuario();
                            usuario.setMatricula(obj.get("matricula").getAsString());
                            usuario.setNome(obj.get("nome").getAsString());
                            usuario.setTipo(obj.get("tipo").getAsString());
                            usuario.setSenha(obj.get("senha").getAsString());
                        }
                    }
                });
    }

Quando crio o usuário fora da função tudo funciona normalmente.
Mas preciso buscar os dados no banco.

O que percebi é que as propriedades do objeto ficam nulas.
Porém se troco de activity, ao retornar na tela original a propriedade aparece corretamente.

???