ArboreumDev / credit-union-frontend

Frontend in Next.js + Typescript + GraphQL
https://frontend-two-sandy.vercel.app
1 stars 0 forks source link

Scenario not running #190

Closed gparuthi closed 3 years ago

gparuthi commented 3 years ago

Scenario:

{
    "users": [
        {
            "name": "a b",
            "email": "amitabh@mail.com",
            "user_type": "borrower",
            "demographic_info": {
                "income": 300,
                "credit_score": 600,
                "education_years": 3
            }
        },
        {
            "name": "d p",
            "email": "deepika@mail.com",
            "user_type": "lender",
            "demographic_info": {
                "income": 300,
                "credit_score": 600,
                "education_years": 3
            }
        },
        {
            "name": "s k",
            "email": "salman@mail.com",
            "user_type": "lender",
            "demographic_info": {}
        }
    ],
    "actions": [
        {
            "id": 1,
            "action_type": "ADJUST_BALANCES",
            "payload": {
                "userEmail": "salman@mail.com",
                "balanceDelta": "20000"
            }
        },
        {
            "id": 2,
            "action_type": "ADJUST_BALANCES",
            "payload": {
                "userEmail": "deepika@mail.com",
                "balanceDelta": "150000"
            }
        },
        {
            "id": 3,
            "action_type": "CONFIRM_LOAN",
            "payload": {
                "amount": 50000,
                "loan_id": "49cd3b42-ec33-4d32-8c0c-2014560926cc",
                "userEmail": "amitabh@mail.com",
                "supporters": [
                    {
                        "email": "salman@mail.com",
                        "pledge_amount": 10000
                    }
                ]
            }
        },
        {
            "id": 4,
            "action_type": "REPAY_LOAN",
            "payload": {
                "amount": "5800",
                "loan_id": "49cd3b42-ec33-4d32-8c0c-2014560926cc",
                "userEmail": "amitabh@mail.com"
            }
        },
        {
            "id": 5,
            "action_type": "REPAY_LOAN",
            "payload": {
                "amount": "8800",
                "loan_id": "49cd3b42-ec33-4d32-8c0c-2014560926cc",
                "userEmail": "amitabh@mail.com"
            }
        },
        {
            "id": 6,
            "action_type": "REPAY_LOAN",
            "payload": {
                "amount": "10000",
                "loan_id": "49cd3b42-ec33-4d32-8c0c-2014560926cc",
                "userEmail": "amitabh@mail.com"
            }
        },
        {
            "id": 7,
            "action_type": "REPAY_LOAN",
            "payload": {
                "amount": "10000",
                "loan_id": "49cd3b42-ec33-4d32-8c0c-2014560926cc",
                "userEmail": "amitabh@mail.com"
            }
        },
        {
            "id": 8,
            "action_type": "REPAY_LOAN",
            "payload": {
                "amount": "10412",
                "loan_id": "49cd3b42-ec33-4d32-8c0c-2014560926cc",
                "userEmail": "amitabh@mail.com"
            }
        },
                {
            "id": 9,
            "action_type": "REPAY_LOAN",
            "payload": {
                "amount": "7693",
                "loan_id": "49cd3b42-ec33-4d32-8c0c-2014560926cc",
                "userEmail": "amitabh@mail.com"
            }
        }
    ]
}
gparuthi commented 3 years ago
swarmai_1         | ERROR:    Exception in ASGI application
swarmai_1         | Traceback (most recent call last):
swarmai_1         |   File "/usr/local/lib/python3.7/site-packages/uvicorn/protocols/http/httptools_impl.py", line 385, in run_asgi
swarmai_1         |     result = await app(self.scope, self.receive, self.send)
swarmai_1         |   File "/usr/local/lib/python3.7/site-packages/uvicorn/middleware/proxy_headers.py", line 45, in __call__
swarmai_1         |     return await self.app(scope, receive, send)
swarmai_1         |   File "/usr/local/lib/python3.7/site-packages/fastapi/applications.py", line 190, in __call__
swarmai_1         |     await super().__call__(scope, receive, send)
swarmai_1         |   File "/usr/local/lib/python3.7/site-packages/starlette/applications.py", line 111, in __call__
swarmai_1         |     await self.middleware_stack(scope, receive, send)
swarmai_1         |   File "/usr/local/lib/python3.7/site-packages/starlette/middleware/errors.py", line 181, in __call__
swarmai_1         |     raise exc from None
swarmai_1         |   File "/usr/local/lib/python3.7/site-packages/starlette/middleware/errors.py", line 159, in __call__
swarmai_1         |     await self.app(scope, receive, _send)
swarmai_1         |   File "/usr/local/lib/python3.7/site-packages/starlette/exceptions.py", line 82, in __call__
swarmai_1         |     raise exc from None
swarmai_1         |   File "/usr/local/lib/python3.7/site-packages/starlette/exceptions.py", line 71, in __call__
swarmai_1         |     await self.app(scope, receive, sender)
swarmai_1         |   File "/usr/local/lib/python3.7/site-packages/starlette/routing.py", line 566, in __call__
swarmai_1         |     await route.handle(scope, receive, send)
swarmai_1         |   File "/usr/local/lib/python3.7/site-packages/starlette/routing.py", line 227, in handle
swarmai_1         |     await self.app(scope, receive, send)
swarmai_1         |   File "/usr/local/lib/python3.7/site-packages/starlette/routing.py", line 41, in app
swarmai_1         |     response = await func(request)
swarmai_1         |   File "/usr/local/lib/python3.7/site-packages/fastapi/routing.py", line 189, in app
swarmai_1         |     dependant=dependant, values=values, is_coroutine=is_coroutine
swarmai_1         |   File "/usr/local/lib/python3.7/site-packages/fastapi/routing.py", line 137, in run_endpoint_function
swarmai_1         |     return await run_in_threadpool(dependant.call, **values)
swarmai_1         |   File "/usr/local/lib/python3.7/site-packages/starlette/concurrency.py", line 34, in run_in_threadpool
swarmai_1         |     return await loop.run_in_executor(None, func, *args)
swarmai_1         |   File "/usr/local/lib/python3.7/concurrent/futures/thread.py", line 57, in run
swarmai_1         |     result = self.fn(*self.args, **self.kwargs)
swarmai_1         |   File "./app/routes/swarmai.py", line 68, in repay_loan
swarmai_1         |     return SystemSimulator(seed=body.system_state).add_repayment(body.loan_id, body.amount).dict()
swarmai_1         |   File "./swarmai/bizLogic/system_simulator.py", line 269, in add_repayment
swarmai_1         |     _from=f"loan-{loan_id}",
swarmai_1         |   File "./swarmai/bizLogic/corpus.py", line 134, in distribute_repayment_to_users
swarmai_1         |     amounts=surplus_amounts, exclude=receivers, _from=_from
swarmai_1         |   File "./swarmai/bizLogic/corpus.py", line 134, in distribute_repayment_to_users
swarmai_1         |     amounts=surplus_amounts, exclude=receivers, _from=_from
swarmai_1         |   File "./swarmai/bizLogic/corpus.py", line 134, in distribute_repayment_to_users
swarmai_1         |     amounts=surplus_amounts, exclude=receivers, _from=_from
swarmai_1         |   [Previous line repeated 952 more times]
swarmai_1         |   File "./swarmai/bizLogic/corpus.py", line 120, in distribute_repayment_to_users
swarmai_1         |     PortfolioUpdate(userId=member, balanceDelta=total_return, shareDelta=-1 * returned_principal)
swarmai_1         |   File "pydantic/main.py", line 360, in pydantic.main.BaseModel.__init__
swarmai_1         |   File "pydantic/main.py", line 976, in pydantic.main.validate_model
swarmai_1         |   File "pydantic/fields.py", line 287, in pydantic.fields.ModelField.get_default
swarmai_1         |   File "pydantic/utils.py", line 624, in pydantic.utils.smart_deepcopy
swarmai_1         |   File "/usr/local/lib/python3.7/copy.py", line 180, in deepcopy
swarmai_1         |     y = _reconstruct(x, memo, *rv)
swarmai_1         |   File "/usr/local/lib/python3.7/copy.py", line 281, in _reconstruct
swarmai_1         |     state = deepcopy(state, memo)
swarmai_1         |   File "/usr/local/lib/python3.7/copy.py", line 150, in deepcopy
swarmai_1         |     y = copier(x, memo)
swarmai_1         |   File "/usr/local/lib/python3.7/copy.py", line 241, in _deepcopy_dict
swarmai_1         |     y[deepcopy(key, memo)] = deepcopy(value, memo)
swarmai_1         |   File "/usr/local/lib/python3.7/copy.py", line 150, in deepcopy
swarmai_1         |     y = copier(x, memo)
swarmai_1         |   File "/usr/local/lib/python3.7/copy.py", line 241, in _deepcopy_dict
swarmai_1         |     y[deepcopy(key, memo)] = deepcopy(value, memo)
swarmai_1         |   File "/usr/local/lib/python3.7/copy.py", line 180, in deepcopy
swarmai_1         |     y = _reconstruct(x, memo, *rv)
swarmai_1         |   File "/usr/local/lib/python3.7/copy.py", line 281, in _reconstruct
swarmai_1         |     state = deepcopy(state, memo)
swarmai_1         |   File "/usr/local/lib/python3.7/copy.py", line 150, in deepcopy
swarmai_1         |     y = copier(x, memo)
swarmai_1         |   File "/usr/local/lib/python3.7/copy.py", line 241, in _deepcopy_dict
swarmai_1         |     y[deepcopy(key, memo)] = deepcopy(value, memo)
swarmai_1         |   File "/usr/local/lib/python3.7/copy.py", line 150, in deepcopy
swarmai_1         |     y = copier(x, memo)
swarmai_1         |   File "/usr/local/lib/python3.7/copy.py", line 241, in _deepcopy_dict
swarmai_1         |     y[deepcopy(key, memo)] = deepcopy(value, memo)
swarmai_1         |   File "/usr/local/lib/python3.7/copy.py", line 180, in deepcopy
swarmai_1         |     y = _reconstruct(x, memo, *rv)
swarmai_1         |   File "/usr/local/lib/python3.7/copy.py", line 281, in _reconstruct
swarmai_1         |     state = deepcopy(state, memo)
swarmai_1         |   File "/usr/local/lib/python3.7/copy.py", line 150, in deepcopy
swarmai_1         |     y = copier(x, memo)
swarmai_1         |   File "/usr/local/lib/python3.7/copy.py", line 241, in _deepcopy_dict
swarmai_1         |     y[deepcopy(key, memo)] = deepcopy(value, memo)
swarmai_1         |   File "/usr/local/lib/python3.7/copy.py", line 150, in deepcopy
swarmai_1         |     y = copier(x, memo)
swarmai_1         |   File "/usr/local/lib/python3.7/copy.py", line 241, in _deepcopy_dict
swarmai_1         |     y[deepcopy(key, memo)] = deepcopy(value, memo)
swarmai_1         |   File "/usr/local/lib/python3.7/copy.py", line 180, in deepcopy
swarmai_1         |     y = _reconstruct(x, memo, *rv)
swarmai_1         |   File "/usr/local/lib/python3.7/copy.py", line 281, in _reconstruct
swarmai_1         |     state = deepcopy(state, memo)
swarmai_1         |   File "/usr/local/lib/python3.7/copy.py", line 150, in deepcopy
swarmai_1         |     y = copier(x, memo)
swarmai_1         |   File "/usr/local/lib/python3.7/copy.py", line 241, in _deepcopy_dict
swarmai_1         |     y[deepcopy(key, memo)] = deepcopy(value, memo)
swarmai_1         |   File "/usr/local/lib/python3.7/copy.py", line 180, in deepcopy
swarmai_1         |     y = _reconstruct(x, memo, *rv)
swarmai_1         |   File "/usr/local/lib/python3.7/copy.py", line 275, in _reconstruct
swarmai_1         |     y = func(*args)
swarmai_1         |   File "/usr/local/lib/python3.7/copy.py", line 274, in <genexpr>
swarmai_1         |     args = (deepcopy(arg, memo) for arg in args)
swarmai_1         |   File "/usr/local/lib/python3.7/copy.py", line 150, in deepcopy
swarmai_1         |     y = copier(x, memo)
swarmai_1         |   File "/usr/local/lib/python3.7/copy.py", line 213, in _deepcopy_list
swarmai_1         |     memo[id(x)] = y
swarmai_1         | RecursionError: maximum recursion depth exceeded while calling a Python object
swarmai_1         | INFO:     System initialized. 1 Borrowers. 2 Lenders  
swarmai_1         | INFO:     192.168.32.1:61180 - "POST /loan/repay HTTP/1.1" 200 OK
swarmai_1         | INFO:     SwarmAI Loan Request Assessment is initialized.
swarmai_1         | INFO:     192.168.32.1:61286 - "POST /loan/request HTTP/1.1" 200 OK
swarmai_1         | INFO:     System initialized. 1 Borrowers. 2 Lenders  
swarmai_1         | INFO:     192.168.32.1:61310 - "POST /loan/accept HTTP/1.1" 200 OK
swarmai_1         | INFO:     System initialized. 1 Borrowers. 2 Lenders  
swarmai_1         | INFO:     192.168.32.1:61362 - "POST /loan/repay HTTP/1.1" 200 OK
swarmai_1         | INFO:     System initialized. 1 Borrowers. 2 Lenders  
swarmai_1         | INFO:     192.168.32.1:61414 - "POST /loan/repay HTTP/1.1" 200 OK
swarmai_1         | INFO:     System initialized. 1 Borrowers. 2 Lenders  
swarmai_1         | INFO:     192.168.32.1:61466 - "POST /loan/repay HTTP/1.1" 200 OK
swarmai_1         | INFO:     System initialized. 1 Borrowers. 2 Lenders  
swarmai_1         | INFO:     192.168.32.1:61518 - "POST /loan/repay HTTP/1.1" 200 OK
swarmai_1         | INFO:     System initialized. 1 Borrowers. 2 Lenders  
swarmai_1         | INFO:     192.168.32.1:61570 - "POST /loan/repay HTTP/1.1" 200 OK
swarmai_1         | INFO:     System initialized. 1 Borrowers. 2 Lenders  
swarmai_1         | INFO:     192.168.32.1:61622 - "POST /loan/repay HTTP/1.1" 500 Internal Server Error
swarmai_1         | ERROR:    Exception in ASGI application
swarmai_1         | Traceback (most recent call last):
swarmai_1         |   File "/usr/local/lib/python3.7/site-packages/uvicorn/protocols/http/httptools_impl.py", line 385, in run_asgi
swarmai_1         |     result = await app(self.scope, self.receive, self.send)
swarmai_1         |   File "/usr/local/lib/python3.7/site-packages/uvicorn/middleware/proxy_headers.py", line 45, in __call__
swarmai_1         |     return await self.app(scope, receive, send)
swarmai_1         |   File "/usr/local/lib/python3.7/site-packages/fastapi/applications.py", line 190, in __call__
swarmai_1         |     await super().__call__(scope, receive, send)
swarmai_1         |   File "/usr/local/lib/python3.7/site-packages/starlette/applications.py", line 111, in __call__
swarmai_1         |     await self.middleware_stack(scope, receive, send)
swarmai_1         |   File "/usr/local/lib/python3.7/site-packages/starlette/middleware/errors.py", line 181, in __call__
swarmai_1         |     raise exc from None
swarmai_1         |   File "/usr/local/lib/python3.7/site-packages/starlette/middleware/errors.py", line 159, in __call__
swarmai_1         |     await self.app(scope, receive, _send)
swarmai_1         |   File "/usr/local/lib/python3.7/site-packages/starlette/exceptions.py", line 82, in __call__
swarmai_1         |     raise exc from None
swarmai_1         |   File "/usr/local/lib/python3.7/site-packages/starlette/exceptions.py", line 71, in __call__
swarmai_1         |     await self.app(scope, receive, sender)
swarmai_1         |   File "/usr/local/lib/python3.7/site-packages/starlette/routing.py", line 566, in __call__
swarmai_1         |     await route.handle(scope, receive, send)
swarmai_1         |   File "/usr/local/lib/python3.7/site-packages/starlette/routing.py", line 227, in handle
swarmai_1         |     await self.app(scope, receive, send)
swarmai_1         |   File "/usr/local/lib/python3.7/site-packages/starlette/routing.py", line 41, in app
swarmai_1         |     response = await func(request)
swarmai_1         |   File "/usr/local/lib/python3.7/site-packages/fastapi/routing.py", line 189, in app
swarmai_1         |     dependant=dependant, values=values, is_coroutine=is_coroutine
swarmai_1         |   File "/usr/local/lib/python3.7/site-packages/fastapi/routing.py", line 137, in run_endpoint_function
swarmai_1         |     return await run_in_threadpool(dependant.call, **values)
swarmai_1         |   File "/usr/local/lib/python3.7/site-packages/starlette/concurrency.py", line 34, in run_in_threadpool
swarmai_1         |     return await loop.run_in_executor(None, func, *args)
swarmai_1         |   File "/usr/local/lib/python3.7/concurrent/futures/thread.py", line 57, in run
swarmai_1         |     result = self.fn(*self.args, **self.kwargs)
swarmai_1         |   File "./app/routes/swarmai.py", line 68, in repay_loan
swarmai_1         |     return SystemSimulator(seed=body.system_state).add_repayment(body.loan_id, body.amount).dict()
swarmai_1         |   File "./swarmai/bizLogic/system_simulator.py", line 269, in add_repayment
swarmai_1         |     _from=f"loan-{loan_id}",
swarmai_1         |   File "./swarmai/bizLogic/corpus.py", line 134, in distribute_repayment_to_users
swarmai_1         |     amounts=surplus_amounts, exclude=receivers, _from=_from
swarmai_1         |   File "./swarmai/bizLogic/corpus.py", line 134, in distribute_repayment_to_users
swarmai_1         |     amounts=surplus_amounts, exclude=receivers, _from=_from
swarmai_1         |   File "./swarmai/bizLogic/corpus.py", line 134, in distribute_repayment_to_users
swarmai_1         |     amounts=surplus_amounts, exclude=receivers, _from=_from
swarmai_1         |   [Previous line repeated 952 more times]
swarmai_1         |   File "./swarmai/bizLogic/corpus.py", line 120, in distribute_repayment_to_users
swarmai_1         |     PortfolioUpdate(userId=member, balanceDelta=total_return, shareDelta=-1 * returned_principal)
swarmai_1         |   File "pydantic/main.py", line 360, in pydantic.main.BaseModel.__init__
swarmai_1         |   File "pydantic/main.py", line 976, in pydantic.main.validate_model
swarmai_1         |   File "pydantic/fields.py", line 287, in pydantic.fields.ModelField.get_default
swarmai_1         |   File "pydantic/utils.py", line 624, in pydantic.utils.smart_deepcopy
swarmai_1         |   File "/usr/local/lib/python3.7/copy.py", line 180, in deepcopy
swarmai_1         |     y = _reconstruct(x, memo, *rv)
swarmai_1         |   File "/usr/local/lib/python3.7/copy.py", line 281, in _reconstruct
swarmai_1         |     state = deepcopy(state, memo)
swarmai_1         |   File "/usr/local/lib/python3.7/copy.py", line 150, in deepcopy
swarmai_1         |     y = copier(x, memo)
swarmai_1         |   File "/usr/local/lib/python3.7/copy.py", line 241, in _deepcopy_dict
swarmai_1         |     y[deepcopy(key, memo)] = deepcopy(value, memo)
swarmai_1         |   File "/usr/local/lib/python3.7/copy.py", line 150, in deepcopy
swarmai_1         |     y = copier(x, memo)
swarmai_1         |   File "/usr/local/lib/python3.7/copy.py", line 241, in _deepcopy_dict
swarmai_1         |     y[deepcopy(key, memo)] = deepcopy(value, memo)
swarmai_1         |   File "/usr/local/lib/python3.7/copy.py", line 180, in deepcopy
swarmai_1         |     y = _reconstruct(x, memo, *rv)
swarmai_1         |   File "/usr/local/lib/python3.7/copy.py", line 281, in _reconstruct
swarmai_1         |     state = deepcopy(state, memo)
swarmai_1         |   File "/usr/local/lib/python3.7/copy.py", line 150, in deepcopy
swarmai_1         |     y = copier(x, memo)
swarmai_1         |   File "/usr/local/lib/python3.7/copy.py", line 241, in _deepcopy_dict
swarmai_1         |     y[deepcopy(key, memo)] = deepcopy(value, memo)
swarmai_1         |   File "/usr/local/lib/python3.7/copy.py", line 150, in deepcopy
swarmai_1         |     y = copier(x, memo)
swarmai_1         |   File "/usr/local/lib/python3.7/copy.py", line 241, in _deepcopy_dict
swarmai_1         |     y[deepcopy(key, memo)] = deepcopy(value, memo)
swarmai_1         |   File "/usr/local/lib/python3.7/copy.py", line 180, in deepcopy
swarmai_1         |     y = _reconstruct(x, memo, *rv)
swarmai_1         |   File "/usr/local/lib/python3.7/copy.py", line 281, in _reconstruct
swarmai_1         |     state = deepcopy(state, memo)
swarmai_1         |   File "/usr/local/lib/python3.7/copy.py", line 150, in deepcopy
swarmai_1         |     y = copier(x, memo)
swarmai_1         |   File "/usr/local/lib/python3.7/copy.py", line 241, in _deepcopy_dict
swarmai_1         |     y[deepcopy(key, memo)] = deepcopy(value, memo)
swarmai_1         |   File "/usr/local/lib/python3.7/copy.py", line 150, in deepcopy
swarmai_1         |     y = copier(x, memo)
swarmai_1         |   File "/usr/local/lib/python3.7/copy.py", line 241, in _deepcopy_dict
swarmai_1         |     y[deepcopy(key, memo)] = deepcopy(value, memo)
swarmai_1         |   File "/usr/local/lib/python3.7/copy.py", line 180, in deepcopy
swarmai_1         |     y = _reconstruct(x, memo, *rv)
swarmai_1         |   File "/usr/local/lib/python3.7/copy.py", line 281, in _reconstruct
swarmai_1         |     state = deepcopy(state, memo)
swarmai_1         |   File "/usr/local/lib/python3.7/copy.py", line 150, in deepcopy
swarmai_1         |     y = copier(x, memo)
swarmai_1         |   File "/usr/local/lib/python3.7/copy.py", line 241, in _deepcopy_dict
swarmai_1         |     y[deepcopy(key, memo)] = deepcopy(value, memo)
swarmai_1         |   File "/usr/local/lib/python3.7/copy.py", line 180, in deepcopy
swarmai_1         |     y = _reconstruct(x, memo, *rv)
swarmai_1         |   File "/usr/local/lib/python3.7/copy.py", line 275, in _reconstruct
swarmai_1         |     y = func(*args)
swarmai_1         |   File "/usr/local/lib/python3.7/copy.py", line 274, in <genexpr>
swarmai_1         |     args = (deepcopy(arg, memo) for arg in args)
swarmai_1         |   File "/usr/local/lib/python3.7/copy.py", line 150, in deepcopy
swarmai_1         |     y = copier(x, memo)
swarmai_1         |   File "/usr/local/lib/python3.7/copy.py", line 213, in _deepcopy_list
swarmai_1         |     memo[id(x)] = y
swarmai_1         | RecursionError: maximum recursion depth exceeded while calling a Python object
swarmai_1         | INFO:     SwarmAI Loan Request Assessment is initialized.
swarmai_1         | INFO:     192.168.32.1:61718 - "POST /loan/request HTTP/1.1" 200 OK
swarmai_1         | INFO:     System initialized. 1 Borrowers. 2 Lenders  
swarmai_1         | INFO:     192.168.32.1:61742 - "POST /loan/accept HTTP/1.1" 200 OK
swarmai_1         | INFO:     System initialized. 1 Borrowers. 2 Lenders  
swarmai_1         | INFO:     192.168.32.1:61794 - "POST /loan/repay HTTP/1.1" 200 OK
swarmai_1         | INFO:     System initialized. 1 Borrowers. 2 Lenders  
swarmai_1         | INFO:     192.168.32.1:61846 - "POST /loan/repay HTTP/1.1" 200 OK
swarmai_1         | INFO:     System initialized. 1 Borrowers. 2 Lenders  
swarmai_1         | INFO:     192.168.32.1:61898 - "POST /loan/repay HTTP/1.1" 200 OK
swarmai_1         | INFO:     System initialized. 1 Borrowers. 2 Lenders  
swarmai_1         | INFO:     192.168.32.1:61950 - "POST /loan/repay HTTP/1.1" 200 OK
swarmai_1         | INFO:     System initialized. 1 Borrowers. 2 Lenders  
swarmai_1         | INFO:     192.168.32.1:62002 - "POST /loan/repay HTTP/1.1" 200 OK
swarmai_1         | INFO:     System initialized. 1 Borrowers. 2 Lenders  
swarmai_1         | INFO:     192.168.32.1:62056 - "POST /loan/repay HTTP/1.1" 500 Internal Server Error
swarmai_1         | ERROR:    Exception in ASGI application
swarmai_1         | Traceback (most recent call last):
swarmai_1         |   File "/usr/local/lib/python3.7/site-packages/uvicorn/protocols/http/httptools_impl.py", line 385, in run_asgi
swarmai_1         |     result = await app(self.scope, self.receive, self.send)
swarmai_1         |   File "/usr/local/lib/python3.7/site-packages/uvicorn/middleware/proxy_headers.py", line 45, in __call__
swarmai_1         |     return await self.app(scope, receive, send)
swarmai_1         |   File "/usr/local/lib/python3.7/site-packages/fastapi/applications.py", line 190, in __call__
swarmai_1         |     await super().__call__(scope, receive, send)
swarmai_1         |   File "/usr/local/lib/python3.7/site-packages/starlette/applications.py", line 111, in __call__
swarmai_1         |     await self.middleware_stack(scope, receive, send)
swarmai_1         |   File "/usr/local/lib/python3.7/site-packages/starlette/middleware/errors.py", line 181, in __call__
swarmai_1         |     raise exc from None
swarmai_1         |   File "/usr/local/lib/python3.7/site-packages/starlette/middleware/errors.py", line 159, in __call__
swarmai_1         |     await self.app(scope, receive, _send)
swarmai_1         |   File "/usr/local/lib/python3.7/site-packages/starlette/exceptions.py", line 82, in __call__
swarmai_1         |     raise exc from None
swarmai_1         |   File "/usr/local/lib/python3.7/site-packages/starlette/exceptions.py", line 71, in __call__
swarmai_1         |     await self.app(scope, receive, sender)
swarmai_1         |   File "/usr/local/lib/python3.7/site-packages/starlette/routing.py", line 566, in __call__
swarmai_1         |     await route.handle(scope, receive, send)
swarmai_1         |   File "/usr/local/lib/python3.7/site-packages/starlette/routing.py", line 227, in handle
swarmai_1         |     await self.app(scope, receive, send)
swarmai_1         |   File "/usr/local/lib/python3.7/site-packages/starlette/routing.py", line 41, in app
swarmai_1         |     response = await func(request)
swarmai_1         |   File "/usr/local/lib/python3.7/site-packages/fastapi/routing.py", line 189, in app
swarmai_1         |     dependant=dependant, values=values, is_coroutine=is_coroutine
swarmai_1         |   File "/usr/local/lib/python3.7/site-packages/fastapi/routing.py", line 137, in run_endpoint_function
swarmai_1         |     return await run_in_threadpool(dependant.call, **values)
swarmai_1         |   File "/usr/local/lib/python3.7/site-packages/starlette/concurrency.py", line 34, in run_in_threadpool
swarmai_1         |     return await loop.run_in_executor(None, func, *args)
swarmai_1         |   File "/usr/local/lib/python3.7/concurrent/futures/thread.py", line 57, in run
swarmai_1         |     result = self.fn(*self.args, **self.kwargs)
swarmai_1         |   File "./app/routes/swarmai.py", line 68, in repay_loan
swarmai_1         |     return SystemSimulator(seed=body.system_state).add_repayment(body.loan_id, body.amount).dict()
swarmai_1         |   File "./swarmai/bizLogic/system_simulator.py", line 269, in add_repayment
swarmai_1         |     _from=f"loan-{loan_id}",
swarmai_1         |   File "./swarmai/bizLogic/corpus.py", line 134, in distribute_repayment_to_users
swarmai_1         |     amounts=surplus_amounts, exclude=receivers, _from=_from
swarmai_1         |   File "./swarmai/bizLogic/corpus.py", line 134, in distribute_repayment_to_users
swarmai_1         |     amounts=surplus_amounts, exclude=receivers, _from=_from
swarmai_1         |   File "./swarmai/bizLogic/corpus.py", line 134, in distribute_repayment_to_users
swarmai_1         |     amounts=surplus_amounts, exclude=receivers, _from=_from
swarmai_1         |   [Previous line repeated 952 more times]
swarmai_1         |   File "./swarmai/bizLogic/corpus.py", line 120, in distribute_repayment_to_users
swarmai_1         |     PortfolioUpdate(userId=member, balanceDelta=total_return, shareDelta=-1 * returned_principal)
swarmai_1         |   File "pydantic/main.py", line 360, in pydantic.main.BaseModel.__init__
swarmai_1         |   File "pydantic/main.py", line 976, in pydantic.main.validate_model
swarmai_1         |   File "pydantic/fields.py", line 287, in pydantic.fields.ModelField.get_default
swarmai_1         |   File "pydantic/utils.py", line 624, in pydantic.utils.smart_deepcopy
swarmai_1         |   File "/usr/local/lib/python3.7/copy.py", line 180, in deepcopy
swarmai_1         |     y = _reconstruct(x, memo, *rv)
swarmai_1         |   File "/usr/local/lib/python3.7/copy.py", line 281, in _reconstruct
swarmai_1         |     state = deepcopy(state, memo)
swarmai_1         |   File "/usr/local/lib/python3.7/copy.py", line 150, in deepcopy
swarmai_1         |     y = copier(x, memo)
swarmai_1         |   File "/usr/local/lib/python3.7/copy.py", line 241, in _deepcopy_dict
swarmai_1         |     y[deepcopy(key, memo)] = deepcopy(value, memo)
swarmai_1         |   File "/usr/local/lib/python3.7/copy.py", line 150, in deepcopy
swarmai_1         |     y = copier(x, memo)
swarmai_1         |   File "/usr/local/lib/python3.7/copy.py", line 241, in _deepcopy_dict
swarmai_1         |     y[deepcopy(key, memo)] = deepcopy(value, memo)
swarmai_1         |   File "/usr/local/lib/python3.7/copy.py", line 180, in deepcopy
swarmai_1         |     y = _reconstruct(x, memo, *rv)
swarmai_1         |   File "/usr/local/lib/python3.7/copy.py", line 281, in _reconstruct
swarmai_1         |     state = deepcopy(state, memo)
swarmai_1         |   File "/usr/local/lib/python3.7/copy.py", line 150, in deepcopy
swarmai_1         |     y = copier(x, memo)
swarmai_1         |   File "/usr/local/lib/python3.7/copy.py", line 241, in _deepcopy_dict
swarmai_1         |     y[deepcopy(key, memo)] = deepcopy(value, memo)
swarmai_1         |   File "/usr/local/lib/python3.7/copy.py", line 150, in deepcopy
swarmai_1         |     y = copier(x, memo)
swarmai_1         |   File "/usr/local/lib/python3.7/copy.py", line 241, in _deepcopy_dict
swarmai_1         |     y[deepcopy(key, memo)] = deepcopy(value, memo)
swarmai_1         |   File "/usr/local/lib/python3.7/copy.py", line 180, in deepcopy
swarmai_1         |     y = _reconstruct(x, memo, *rv)
swarmai_1         |   File "/usr/local/lib/python3.7/copy.py", line 281, in _reconstruct
swarmai_1         |     state = deepcopy(state, memo)
swarmai_1         |   File "/usr/local/lib/python3.7/copy.py", line 150, in deepcopy
swarmai_1         |     y = copier(x, memo)
swarmai_1         |   File "/usr/local/lib/python3.7/copy.py", line 241, in _deepcopy_dict
swarmai_1         |     y[deepcopy(key, memo)] = deepcopy(value, memo)
swarmai_1         |   File "/usr/local/lib/python3.7/copy.py", line 150, in deepcopy
swarmai_1         |     y = copier(x, memo)
swarmai_1         |   File "/usr/local/lib/python3.7/copy.py", line 241, in _deepcopy_dict
swarmai_1         |     y[deepcopy(key, memo)] = deepcopy(value, memo)
swarmai_1         |   File "/usr/local/lib/python3.7/copy.py", line 180, in deepcopy
swarmai_1         |     y = _reconstruct(x, memo, *rv)
swarmai_1         |   File "/usr/local/lib/python3.7/copy.py", line 281, in _reconstruct
swarmai_1         |     state = deepcopy(state, memo)
swarmai_1         |   File "/usr/local/lib/python3.7/copy.py", line 150, in deepcopy
swarmai_1         |     y = copier(x, memo)
swarmai_1         |   File "/usr/local/lib/python3.7/copy.py", line 241, in _deepcopy_dict
swarmai_1         |     y[deepcopy(key, memo)] = deepcopy(value, memo)
swarmai_1         |   File "/usr/local/lib/python3.7/copy.py", line 180, in deepcopy
swarmai_1         |     y = _reconstruct(x, memo, *rv)
swarmai_1         |   File "/usr/local/lib/python3.7/copy.py", line 275, in _reconstruct
swarmai_1         |     y = func(*args)
swarmai_1         |   File "/usr/local/lib/python3.7/copy.py", line 274, in <genexpr>
swarmai_1         |     args = (deepcopy(arg, memo) for arg in args)
swarmai_1         |   File "/usr/local/lib/python3.7/copy.py", line 150, in deepcopy
swarmai_1         |     y = copier(x, memo)
swarmai_1         |   File "/usr/local/lib/python3.7/copy.py", line 213, in _deepcopy_list
swarmai_1         |     memo[id(x)] = y
swarmai_1         | RecursionError: maximum recursion depth exceeded while calling a Python object